2013-04-07 2 views
5
에 의해 감지

내 코드 :realloc을 : 다음 크기 무효, glibc에

 
int args_size = 5; 
char** args; 

args = (char**) malloc(sizeof(char*) * args_size); 

// ... 

args = (char**) realloc(args, sizeof(char*) * (args_size += 5)); 

내가 5.

하여 크기를 늘리려하지만이 오류를 얻을 : 내가 아는

 
*** glibc detected *** ./a.out: realloc(): invalid next size: 0x0000000000a971c0 *** 

을 realloc을 잡는 임시 변수가 좋지만 단순함을 위해서 ...

+0

'매크로 - args '란 무엇입니까? – cnicutar

+0

@cnicutar arrrr 죄송합니다. – Sam

+0

'malloc'의 반환을 캐스팅하지 마십시오. '+ =', 부작용으로 프로그래밍 부작용. –

답변

5

SOLVED

초기에 args의 크기는 5 개 요소입니다. 프로그램이 args으로 채워 졌기 때문에 실수로 6th 요소를 추가 한 다음 realloc을 호출했습니다.

질문에서 언급 한 오류가 발생했습니다.

문제 ... WhozCraig, 옌스 Gustedt 다른 사람의 의견에 따라, 오류를 제거하여 모든

감사를 해결!