2014-11-10 1 views
0

나는 cLearnTheHardWay를 따르고 있는데 valgrind 도구를 사용했지만 읽을 수있는 방법을 혼란스럽게 만들었으므로 메모리 누수와 관련된 오류를 수정할 수 있습니다. 그것은 당신의 프로그램이 초기화되지 않은 데이터를 사용하고 있음을 말하는valgrind 오해 길드

/* Warning: This program is wrong on purpose. */ 

int main() 
{ 
int age=10; 
int height; 

printf("I am %d years old.\n"); 
printf("I am %d inches tall.\n", height); 

return 0; 
} 

I am -16777528 years old. 
==15826== Conditional jump or move depends on uninitialised value(s) 
==15826== at 0x4E8047E: vfprintf (vfprintf.c:1660) 
==15826== by 0x4E8A388: printf (printf.c:33) 
==15826== by 0x40055E: main (ex4.c:11) 
==15826== 
==15826== Use of uninitialised value of size 8 
==15826== at 0x4E7F93B: _itoa_word (_itoa.c:179) 
==15826== by 0x4E835E6: vfprintf (vfprintf.c:1660) 
==15826== by 0x4E8A388: printf (printf.c:33) 
==15826== by 0x40055E: main (ex4.c:11) 
==15826== 
==15826== Conditional jump or move depends on uninitialised value(s) 
==15826== at 0x4E7F945: _itoa_word (_itoa.c:179) 
==15826== by 0x4E835E6: vfprintf (vfprintf.c:1660) 
==15826== by 0x4E8A388: printf (printf.c:33) 
==15826== by 0x40055E: main (ex4.c:11) 
==15826== 
+0

'ex4.c'의 출처도 게시하십시오. – nanny

+1

@nanny ex.c가 추가되었습니다. –

+0

@ Grzegorz Szpetkowski 무슨 뜻이야! –

답변

0

더 나은

ex.c에게 #INCLUDE하는 데 도움이, 그리고 책임있는 함수 호출은 ex4.c 파일의 11 행에 있음. 코드를 검사하면 문제의 원인이 표시됩니다 (값을 할당하지 않고 변수를 선언하고 사용하는 경우). 컴파일러 경고 레벨을 최대로 설정하면 문제를 식별해야합니다.

+0

--track-origins = yes 명령을 사용하려고 시도했으나 행 번호가 표시되지 않았습니다. –