나는 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
입니다.
그래서 나는 뭔가 잘못하고 있다고 생각합니다. getfilename
가 리턴 한 후
정말로 모든 경고와 디버깅 정보를 얻으려면'gcc -Wall -g'로 컴파일해야합니다. GCC가 당신에게 경고했을 것입니다. 그리고 경고가 주어지지 않을 때까지 코드를 향상 시키면'gdb'를 사용하여 문제를 디버깅 할 수 있습니다. –