메모리 선언에 대해서...
글쓴이: kernelbomb / 작성시간: 금, 2004/04/02 - 9:03오후
안녕하세요?
포인터 배열을 함수 안에서 사용해 해당 값을 리턴해야 하는데
메모리 할당을 어떻게 해줘야 할지 모르겠네요.
char *func(void) { int i; char *buf[10]; for(i = 0; i < 10; i++) { buf[i] = strdup("aaaaaa"); } return buf; } int main(void) { char *ptr; ptr = func(); return 0; }
간단하게 위와같은 코드가 있다면 컴파일시 로컬변수를 리턴한다고
경고가 납니다. 당연히 로컬에서 변수를 선언해서 리턴하니, 함수
종료 후, 스택의 데이터가 사라지니 에러가 나겠지만, 그래서 strdup()로
로컬 변수에 메모리 할당하면서 값을 대입했거든요.
함수 안에서 포인터 배열 선언 후, 메모릴 할당을 어떻게 해줘야 할지 너무
헷갈리네요.
도와 주십시요. ㅜㅜ;
Forums:
음...
요걸 원하는건 아니신지요?
H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!
댓글 달기