c에 덤프된 분할 오류 코어 [닫기]

c에 덤프된 분할 오류 코어 [닫기]

이 코드를 실행하면 오류가 발생합니다.분할 오류(코어 덤프)

#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 );

다 괜찮아

관련 정보