2016-04-20 162 views
-1

我有点困惑,何时应该为指针指向malloc空间。任何帮助将非常感激。我必须为NULL指针的malloc?我什么时候需要为malloc指针?

+0

如果你想指向一段新的内存,你需要malloc。 NULL意味着不指向任何内存,所以不。 – SLaks

+2

指针的'malloc()'空间有点不寻常,无论是否为NULL。 – EOF

+1

@EOF:只是为了确保OP了解你的评论,你的malloc()空间用于指向指针,而不是指针本身。 –

回答

4

函数malloc用于在执行程序期间分配一定量的内存。 malloc函数将从堆中请求一块内存。

我有点困惑,我应该什么时候malloc空间的指针。

您不必一定要使用malloc才能使用指针。 malloc只能在运行时需要动态请求空间时使用。例如,

char arr[20]="Stack"; 
char *ptr; //It is pointer 
ptr = arr; 
printf("%s", ptr); 

在上述例子中,我还没有使用malloc但我仍然可以使用指针ptr。唯一重要的是指针应指向您打算工作的某个有效内存位置。无论是分配一个变量的地址的指针

int a; 
int *ptr=&a; 

或者

使用malloc在运行时申请的内存。

int *ptr=malloc(sizeof(int)); 

我必须的malloc空指针?

答案是否定的。在计算中,空指针的值保留用于指示指针不引用有效对象。 NULL是分配给指针的值,这意味着它们不涉及有效的对象。只需将NULL值分配给指针即可。

int *ptr=NULL: