[英]printf prints character instead of digit for %d specifier
C動態內存分配函數在stdlib.h標頭中定義。
如果將“標准庫”添加到代碼中,則它應該可以正常運行。
另外,當malloc()無法分配所請求的空間時,它會返回空指針。 因此,您應該使用簡單的if-else塊來確保接收到的不是NULL。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int* pi = (int*) malloc(sizeof(int));
if(pi==NULL){
printf("Malloc Failed!");
return -1;
}
else{
*pi = 5;
printf("*pi: %d\n", *pi);
free(pi);
return 0;
}
}
上面的代碼塊給出了預期的結果* pi:5。
希望這可以幫助,
參考: https : //en.wikipedia.org/wiki/C_dynamic_memory_allocation
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.