main함수 인자에 *argv[] 있는 건데요ㅜㅜ

wkdend의 이미지

#include

int main(int argc,char *argv[])
{
while(argc<3)
{
printf("Input another string:");
scanf("%s",argv[argc]);
argc++;
}
printf("%s %s %s",argv[0],argv[1],argv[2]);
return 0;
}

이렇게 해서 실행시켰는데 왜 argv[1]에 자꾸 NULL이 출력될까요??

wkdend의 이미지

어머 왜 두개가 올라왔지
지울 수도 없는 것 같은데 어떡하죠ㅜㅜㅜㅜㅜㅜㅜ

jick의 이미지

argv는 프로그램을 처음 실행시킬 때 사용자가 넣은 command line argument를 담는 배열입니다.

프로그램을 시작할 때 아무런 argument도 주지 않았다면 argv[1]은 NULL을 가리킵니다. scanf를 하는 순간 프로그램이 안 뻗은 게 이상하군요.

C에서 문자열과 배열의 사용법을 잘 읽어보시고 배열을 따로 만들어서 사용하세요.

wkdend의 이미지

아 그렇군요!!
정말 감사합니다^^

shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

wkdend의 이미지

우와 좋은 정보 감사합니다!!!