2016-04-20 53 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: