我開始學習C,並且我不明白我做錯了什麼。這裏是一個函數的簡單代碼,它返回pid +「。data」。返回一個字符串指針
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
char * getfilename(){
char name[60];
sprintf(name,"%i.data",getpid());
return name;
}
void main(){
char* name = getfilename();
printf("%s",name);
}
輸出:��#�a
。
所以我想我做錯了什麼。
你應該用'gcc -Wall -g'編譯得到所有的警告和調試信息。海灣合作委員會會警告你。然後,您可能希望使用'gdb'來調試問題,一旦您改進了代碼,直至不給出警告爲止。 –