C语言 VC中 new怎么使用啊

我想要为1000000个数排序
但是似乎犹豫内存控制方面的问题
不能直接分配有1000000个元素的long型数组的空间
google了一下 没能找到相关知识
不过似乎要使用new这个....
请大虾能告诉我new怎么用
或者给我说哪里我可以学到new怎么用
或者怎样分配到1000000个元素的数组所需内存

在C语言中 我们必须使用malloc函数,因为C语言没有new这个操作符,但是如果你的编译器是C++的话,是可以使用new的.

C语言的malloc函数的使用方法:
1.首先定义一个long指针,像这样long* pNumber;
2.动态开辟一片内存(1000000个long),可以这样malloc(sizeof(long) * 1000000); malloc函数唯一的参数是一个size_t(unsigned long类型),它表示你要开辟的内存的大小,我们要开辟1000000个long.
3.返回一个void*指针,我们必须转换成long*指针,像这样(long*)malloc(..);

所以你要的程序就是:
long *pNumber = (long*)malloc(sizeof(long) * 1000000);
开辟后就可以像数组一样使用它了
使用完后,一定要记得释放它,用free,像这样free(pNumber);

使用new更方便
代码:
long* pNumber = new long[1000000];
使用完后,使用delete[]
像delete[] pNumnber;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-10
new是C++语言的操作符,在C语言中无法使用,在C语言中应该使用malloc()或者calloc()函数动态分配内存

new的用法:

long int *p;

p=new long[100];//分配100个long型单元。
第2个回答  推荐于2018-05-07
1、首先new关键词是用来动态申请内存的,
2、c语言是没有new关键字的,使用malloc函数来动态申请内存
下面是一个用户想在运行时用户输入N来确定数组长度,程序如下:
但是此时如果编译器不支持C99该程序是会报错的。在vc6.0中应该会报错。
#include<stdio.h>
int main()
{
int N;
scanf("%d",&n);
int a[N][N]; //

return 0;
}
3、但是可以用动态申请内存的方式解决
#include<stdio.h>
#include<stdlib.h>
int main()
{
int N,*p;
int i;
printf("请输入数组元素的个数:");
scanf("%d",&N);
p=(int*)malloc(N*sizeof(int));
//此时如果申请成功,p指向一个有N个元素的内存区域。可以当作有N个元素的数组。
if(!p)
exit(1);
for(i=0;i<N;i++)
p[i]=i; //因为p可以当作数组使用,p[i]就是数组的第i个元素
for(i=0;i<N;i++)
printf("%d",p[i]);
return 0;
}本回答被网友采纳
第3个回答  2009-01-10
long p;
p=new long[100000];
不知道能不能成功,P是一个指针了
相似回答