가능한 중복 :
여기
What is the difference between char s[] and char *s in C?
Why does this program give segmentation fault?버스 오류 (10)
코드입니다 :
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void reverse(char *c){
int len = strlen(c);
char tmp;
int i;
for(i = 0; i < len; i++){
tmp = c[len-1-i];
c[len-1-i] = c[i];
c[i] = tmp;
}
}
int main(){
char *s = "antonio";
//printf("%zd\n", strlen(s));
reverse(s);
printf("%s\n", s);
return 0;
}
문제는 역에
(문자 * c), 그것을 문자열 광고 반전,하지만 난 이해가 안 돼요 어디로 g 잘못된 것.
문자열 리터럴을 수정하려고합니다. 이것은 정의되지 않은 동작이며 일반적으로 충돌합니다. –
컴파일러 경고를 사용하지 못하거나주의를 기울이지 않았습니다. 모든 경고가 활성화 된 상태에서 코드를 다시 컴파일하고 컴파일러에서 알려주는 모든 내용을 이해했는지 확인하십시오. 자동화 된 도구를 사용하면 도움이 필요하기 전에 아주 먼 길을 가질 수 있습니다! –
@KerrekSB 경고를받지 못했습니다. 컴파일러의 모든 경고를 활성화하는 방법을 보게됩니다. – AR89