realloc 함수에서 Segmentation fault error...
글쓴이: do2do2 / 작성시간: 금, 2010/08/06 - 6:30오후
안녕하세요 ~
return realloc(ptr, nsize);
요기서 Program received signal SIGSEGV, Segmentation fault 가 납니다!
디버깅을 해보니,
ptr = (void *) 0x0
nsize = 376
인데요~
이 코드가 근데 visual studio, iphone SDK 에서는 잘 돌아갔는데,
android ndk 상에서 돌려보니 이런 에러가 뜨네요 ~
초보자인 저로서는 혼란스러울 뿐입니다 =ㅅ= ;;;
혹시 해결책을 알고계신분 알려주세요 ~~!! ㅠ ㅠ
Forums:
ptr이 널인 이유를
ptr이 널인 이유를 찾으셔야죠.
질문하신 내용으로는 추론 조차 하기 힘든데요.
realloc을 다른 allocation
realloc을 다른 allocation 함수에서 wrap해서 사용하고 계신 건가요? realloc이 넘겨준 포인터를 return하는 함수 전체를 보여주시면 답을 드릴 수 있을 거 같은데요.
그리고 realloc에서 segfault 가 난 건 정확한가요? ptr이 널이어도 realloc은 문제가 없는 걸로 알고 있는데요.
----
Let's shut up and code.
----
Let's shut up and code.
네~ realloc을 다른
네~ realloc을 다른 allocation 함수에서 wrap해서 사용하고 있는거구요.
함수 전체는 이렇습니다.
static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
(void)ud;
(void)osize;
if (nsize == 0) {
free(ptr);
return NULL;
}
else
return realloc(ptr, nsize);
}
그리고 segfault가 realloc(ptr, nsize) 요라인을 지나고 나서 생기구요..
제가 vc에서 돌려본 결과 ptr의 값은 null이어도 상관 없습니다. 문제는 저 realloc 함수의 return 값 때문에 뭔가 문제가 생기는 것 같습니다..
댓글 달기