이 코드를 실행하면 오류가 발생합니다.분할 오류(코어 덤프)
#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 );
다 괜찮아