|
안녕하세요.
제목이 좀 심했나요? ^^
책에 있는 소스가 아래거와 동일하다면,
저자가 포인터에 대한 개념도 없는 사람이네요.
C/C++ 에서 포인터에 대한 개념 못 잡으면, 몇년을 해도 소용 없습니다.
하물며, 책의 예제란 것이 저런식으로 포인터를 쓴다면,
저자가 문제가 있거나, C 언어 수박 겉핡기로 배운 사람 같네요.
책 제목이나 한번 알려 주세요.
소스에서 잘못된 것은
char* myBuffer;
이렇게 선언하고 어디에도 할당하는 곳이 없습니다.
즉, 이 포인터 값은 어디일지 알 수가 없는 것이구요.
i=sprintf(myBuffer,"%s\n","test3");
그 어디인지 알수 없는 포인터에 이렇게 데이타 써 버리면,
이 프로그램은 언제든지 죽어 버릴 수 있는 프로그램이 됩니다.
char myBuffer[200]; // 충분한 크기로 숫자를 써 주세요.
이렇게 바꾸거나 malloc 등을 이용해서 할당한 후에 써야 합니다.
수고하세요!
님이 쓰신 글 :
: 책에 있는 소스를 그대로 따라 하긴 했는뎅... 이해가 안되는 부분이 있어서.. 고수분들 꼭 좀 부탁드려여 ㅠ.. 터보c 소슨뎅.. 여기에 쓸글은 아닌걸 알지만... 부탁드려여.. ㅠ..ㅠ..
: #include <stdio.h>
: void main() {
: char* myBuffer;
: int i = 100;
: i = cprintf("%s\n\r", "test1");
: printf("출력된 문자열수는: %d입니다.\n", i );
: i = printf(" %s\n" , "test2");
: printf("출력된 문자열수는:%d입니다.\n", i);
: i=sprintf(myBuffer,"%s\n","test3");
: printf("출력된 문자열수는: %d입니다.\n\r", i);
: }
:
: 결과: test
: 출력된 문자열수는 : 7입니다.
:
: test2
: 출력된 문자열수는: 6입니다.
: 출력된 문자열수는: 5입니다.
:
: (질문) 여기서.. 결과를 보면.. 7과 6,, 5라는 숫자가 어떻게 해서 나온건지.. 그리구. 마지막 결과는 6이라구 나오던뎅..
: 고수님들.. 부탁드립니당..~ㅠ.ㅠ..
|