사람은 프로그램이 갑자기 종료이예기치 않은 출력 (포인터)
#include <stdio.h>
void modify (char*s,int x,int y)
{
s[x]=s[y];
}
main()
{
char* s = "random";
modify(s,1,2);
}
에서 오류를 지적 없습니다. 나는 이것이 매우 쉬운 질문 일지 모르지만 나는 c를 처음 접한다. 감사합니다.
사람은 프로그램이 갑자기 종료이예기치 않은 출력 (포인터)
#include <stdio.h>
void modify (char*s,int x,int y)
{
s[x]=s[y];
}
main()
{
char* s = "random";
modify(s,1,2);
}
에서 오류를 지적 없습니다. 나는 이것이 매우 쉬운 질문 일지 모르지만 나는 c를 처음 접한다. 감사합니다.
modify
에 할당 중에 충돌이 발생했기 때문입니다. 그 이유는 포인터가 수정 불가능한 상수 문자열을 가리키고 있기 때문입니다. 당신이 문자열을 수정하려면
대신 배열로 선언 할 수 있습니다 : 그것 뿐이다
char s[] = "random";
합니다. 한 번 같은 문제가있었습니다. 함께
char *s = "random";
한 다음 :이 광고를 교체한다
char s[] = "random";
제가 입력하면 '의 printf ("\ n 개의 %의 C"들 [X]);' 프로그램이 제대로 작동합니다. –
무엇이 필요합니까? 코드가 끝나면 프로그램이 끝납니다. 당신이 게시 한 것은 아무것도하지 않는 프로그램입니다. –