![c에 덤프된 분할 오류 코어 [닫기]](https://linux55.com/image/93899/c%EC%97%90%20%EB%8D%A4%ED%94%84%EB%90%9C%20%EB%B6%84%ED%95%A0%20%EC%98%A4%EB%A5%98%20%EC%BD%94%EC%96%B4%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
이 코드를 실행하면 오류가 발생합니다.분할 오류(코어 덤프)
#include<stdio.h>
int main(int argc, char *argv[]) {
int i = 0;
printf("\n cmdline arg counts = %s ", argc);
printf("\n exec name = %s ", argv[0]);
for (i=1; i<argc; i++) {
printf("\n arg %d = %s" , i, argv[i]);
}
return 0;
}
이 문제를 해결하는 방법을 알려주십시오. 나는 주장을 전달하고 있습니다.
답변1
귀하의 문제는 다음과 같습니다
printf("\ncmdline arg counts = %s ",argc );
%s(%d 대신) 형식을 사용하여 argc를 인쇄하므로 argc를 문자열에 대한 포인터로 해석합니다. 이로 인해 printf는 보호된 공간에서 문자열을 읽으려고 시도합니다. 줄을 다음으로 변경합니다.
printf("\ncmdline arg counts = %d ",argc );
다 괜찮아