어떤 이유로 strArr [n]의 malloc을 사용하면 strArr [n-1]의 값에 '!'가 추가됩니다. 아니면 마지막 문자를 '!'로 바꿉니다. GDB에서 strArr [n]에 할당 할 때 문자열은 찾은 것처럼 보이지만 n이 증가 할 때 strArr [n] (이 경우 n + 1)을 malloc 할 때 strArr [n-1]은 '!' 덧붙였다. 왜 이런 일이 일어나는지 전혀 모른다.문자열 배열의 마지막 값 끝에 느낌표가 나타납니다. C
char** stringArr = malloc(sizeof(char*)*28);
char* token;
int n = 0;
while(n < 28)
{
token = //tokenize something here
stringArr[n] = malloc(sizeof(token)+1);
strcpy(stringArr[n], token);
}
와우, 내가 그랬다는 것을 믿을 수 없다. 그것은 내 시스템 수업에서 학기의 끝이고 나는 여전히 약간의 실수를 만회하고있다 : ( – codemonkey