똑같은거 같은데 왜 하나는 에러가뜨죠/
설아
#include iostream
using namespace std;
int main(int argc, char* argv[])
{
int nBuffer[5];
memset(nBuffer, NULL, sizeof(int) *5);
sprintf((char*)nBuffer, %s\n, This is Test!);
printf(%s, nBuffer);
return 0;
}
이건 되는데
#include iostream
using namespace std;
int main()
{
int nBuffer[5]; int argc; char* argv[];
memset(nBuffer, NULL, sizeof(int) *5);
sprintf((char*)nBuffer, %s\n, This is Test!);
printf(%s, nBuffer);
return 0;
}
이건 왜 안되나요??
argv가 알 수 없는 크기라네요..
-
메이커
이런식으로 프로그램의 외부에서 호출되는 값이 main에서 선언하는 인자관련된 부분입니다.
위의 경우 \안녕\ \하세요\ 이렇게 2개의 문자열이 전달되게 됩니다.
위 명령을 도스 콘솔창(쉘)에서 실행시키셨다면 main을 호출하는건 쉘이겠지요^^;;
같은 원리로 main() 에서 리턴하시는 값은 test.exe를 호출한 녀석(위의 경우 쉘)에게 전달됩니다.
기본적으로 함수의 파라메터와 리턴값에 대한 이해와..
누가 호출하는지만 아시면 되리라 봅니다^^;; -
푸헷
흠.. 메인은 해당 프로그램의 시작점입니다.
a()함수는.... 메인이든 필요한 곳서 호출하시겠지요??
int a(int b) 이런식으로 정의되어있다면.. a()함수를 호출할때..
int형의 값을 전달해야 합니다...
같은 원리로 main()함수를 보시면 역시 괄호로 되어있기때문에...
main역시 함수이며 누군가가 호출하게됩니다.
보통은 O/S에서 호출합니다.
예를들어 만드신 프로그램이 test.c라고 가정한다면..
컴파일 하시면 test.exe파일이 -
아연
인자의 갯수를 얻어 오려면 main에 꼭 int argc 인자를 받도록 변경해야 합니다.
왜 그러냐구요?
그렇게 만들어져 있기 때문에 그렇습니다. ㅎㅎ -
수국
죄송한데여.. 제가 인자 주소값 포인터 같은걸 알긴아는데 자세히 몰라서.. 인자로 넘어온다는게 어떤의미인지??..ㅜㅜ 죄송합니다.