다음 코드를 실행하려고하면 seg 오류가 발생합니다. 나는 gdb를 통해 실행하려고 시도했습니다. 오류가 printf
호출의 일부로 발생하고 있음을 알았지 만 정확히 작동하지 않는 이유는 분실했습니다. 내가 printf("%s\n", c);
로 printf("%s\n", *type);
를 교체 할 경우printf에 char 배열에 대한 포인터를 주면 프로그램이 충돌합니다.
#include <stdlib.h>
#include <stdio.h>
int main() {
char c[5] = "Test";
char *type = NULL;
type = &c[0];
printf("%s\n", *type);
}
은 내가 예상대로 인쇄 "테스트"얻는다. char 배열에 대한 포인터와 함께 작동하지 않는 이유는 무엇입니까?
방금 nitpick하고 싶습니다. C가 프로그램이 아니기 때문에 "C"가 중단되지 않았습니다. 컴파일러가 충돌하지 않았습니다. *** C를 사용하여 충돌하는 프로그램을 작성했습니다 *** –
당신은 정확한 David입니다. 제가 말하고자하는 바를 알고 있습니다. 분명히 당신도 그렇습니다.하지만 이런 종류의 것들을 토론 할 때는 정확해야합니다. – WhiteHotLoveTiger
'% s'을'% c' (으)로 변경하면 'c [0]'이 표시됩니다. – wulfgarpro