오늘의 아침 (정말 놀랐어요.)왜 char 포인터가 세그먼테이션 결함을 제공하지 않습니까? 난 그냥 C의 동작 놀라게 가지고
내가 이런 코드를 작성하는 경우 : 내가 그것을 때문에 세그먼트 오류를 줄 것이라는 점을 알고있다 그리고
char *txt;
strncpy(txt,"hello",4);
printf("%s\n",txt);
을 나는 'txt'포인터에 메모리를 할당하지 않았다. ?
char *txt = (char *) calloc(0,sizeof(char));
strncpy(txt,"hello",4);
printf("%s\n",txt);
여전히
내가 'TXT'0 바이트를 할당 한하지만 세그먼트 오류를 포기하지 않을 이유 난 그냥 놀랐있어이 대신 세그먼트 오류를주는, 그것이 : 확인 .... 이제이 코드를 참조 정답은 "지옥"입니다.
누구나 저 같은 유형의 C 동작을 설명 할 수 있습니까?
'free (txt)'를 호출하여 무슨 일이 일어나는 지보십시오 ... – pat
m은 무료로 (txt)를 호출 할 때 모든 것이 잘되고 있습니다. 오류가 오지는 않으며 정답을주고 있음을 의미합니다. @가볍게 두드리기 – sdream