這是一個關於malloc和scope的相當簡單的問題。從我對malloc的理解中,它允許你動態地爲變量分配內存等。不應該意味着變量保持可訪問狀態,直到內存被釋放爲止。我寫了幾行代碼,但是當我嘗試編譯時遇到了這個錯誤。爲什麼在使用malloc後指針不能在這個函數之外訪問?
錯誤消息: 「malloc.c:16:37:錯誤:使用未聲明的標識符的 'A'」
#include <stdio.h>
#include <stdlib.h>
int* createnum(int n)
{
int* a = malloc(sizeof(int));
*a = n;
printf("%p\n", a);
printf("%d\n", *a);
return a;
}
int main(void)
{
createnum(1);
printf("The variable is %d\n", a);
return 0;
}
這與'malloc'無關,只是作用域/名稱查找。 – ghostofstandardspast