나는 유일한 인수로 char *를 취하는 함수를 가지고있다. 그런 다음 strtok 작업을 수행합니다. 때로는 효과가 있고 때로는 효과가 있습니다. 그것은 문자열이 어떻게 생성되었는지에 달려 있습니다. 예를 들어 여기에 두 가지 경우가 있습니다.C 문자열 할당 차이가 있습니까?
int main()
{
char glob[] = "/abc/def/ghi";
char *glob2 = "/abc/def/ghi";
func(glob); //this one works
func(glob2); //this one doesnt work
return 0;
}
두 가지 할당 방법의 차이점은 무엇이며 두 번째 할당 방법에서 strtok가 왜 폭발합니까?
char []와 char *의 차이점에 대한 litb의 우수한 게시물 읽기 - http://stackoverflow.com/questions/308279/c-strings-vs/308724#308724 – Falaina
char *에 문자열 상수 할당 const char *)는 역사적인 이유로 만 합법적입니다. 이 패키지는 더 이상 사용되지 않는 것으로 간주되며 일부 컴파일러는 경고를 보냅니다. –