[완료]memset 비슷한 함수 작성하다 생긴 문제_메모리관련
글쓴이: tokubetu111 / 작성시간: 수, 2007/06/27 - 10:16오후
안녕하세요.
제가 프로그래밍 공부하기 위해서, 표준함수 사용하지않고 필요한 것들을 직접 작성해보는 연습을 하고있습니다.
memset과 유사한 함수 작성하다가 문제가 생겼는데, 도저히 원인을 몰라 질문올립니다. ㅜㅜ
아래의 main함수에서 선언한 포인터변수 *pchar가 문제를 일으킵니다.
컴파일은 되는데, 실행시에 에러가 발생합니다.
그런데 주석으로 막아놓은 것처럼, 배열로 선언하면 실행시에도 문제가 발생하지 않습니다.
이유 아시는분은 좀 가르쳐 주시기를, 부탁드립니다.
그럼 수고하세요~
#include
char* char_memset(char* buffer, int len, char value);
int main()
{
//char pchar[] = "abcde";
char *pchar;
char_memset(pchar, 5, 'A');
return 0;
}
char* char_memset(char* buffer, int len, char value)
{
int i;
for(i=0; i
{
*(buffer + i) = value;
printf("buffer[%d] = %c\n",i,*(buffer + i));
}
}
Forums:
*pchar는 메모리가
*pchar는 메모리가 아직 할당 되지 않은 비어 있는 포인터 입니다.
그러니 에러가 발생 하는건 당연합니다.
일단 char_memset()함수에서 buffer를 사용하기전에 len+1만큼 malloc()으로 메모리를 잡고 사용을 해보세요.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <beer.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
감사합니다.
말씀듣고, 찬찬히 보니깐,
제가 선언해 놓은 포인터는, 아무것도 가리키고 있지 않는 '붕~'떠있는 것이군요.
좀 더 열심히해서, 다음번엔 좀 더 수준있는 질문을 올리도록 하겠습니다. ㅜㅜ
[오늘 나의 불행은, 과거 언젠가 잘못 보낸 시간의 보복이다.]
[오늘 나의 불행은, 과거 언젠가 잘못 보낸 시간의 보복이다.]
댓글 달기