‘壹’ c语言 VC中 new怎么使用啊
在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;
‘贰’ 关于c语言中new字符的使用。
取决于你内存使用方式,pt仅仅是一指针,你想用它指向输入缓冲区,或者自己新申请内存都可以。
如果指向新申请内存,你记得要释放掉,以免造成内存泄露,你的函数仅仅是搜索,不需要新申请内存,就把指针指向输入缓冲区就很好
‘叁’ C语言new函数到底应该怎么使用
C语言中没有new函数,但是有malloc函数
原型:void *malloc(unsigned int size);
#include<stdlib.h>或#include <malloc.h>
malloc 向系统申请分配指定size个字节的内存空间(连续的一块内存)。返回类型是 void* 类型。void* 表示未确定类型的指针。
malloc 只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。
申请零字节内存,函数并不返回NULL,而是返回一个正常的内存地址,但是你却无法使用这块大小为0的内存。
#include<stdio.h>
#include<conio.h>
intmain(void)
{
inti,n;
char*buffer;
printf("Howlongdoyouwantthestring?");
scanf("%d",&i);
buffer=(char*)malloc(i+1);
if(buffer==NULL)
{
exit(1);
}
for(n=0;n<i;n++)
{
buffer[n]=rand()%26+'a';/*generate0-25*/
}
buffer[i]='