2016-09-16 4 views
-3

코드에서 valgrind를 실행할 때 변수를 초기화하는 행에 "크기 [1 | 4 | 8] 크기 오류 쓰기가 잘못되었습니다."오류가 발생합니다.변수 초기화시 유효하지 않은 값 쓰기 (Valgrind 및 C)

예.

#include <stdbool.h> 
#define size 50 

int main() 
{ 
    int i; 

    bool valid = false; // error seen here 
    int array[size]; 
    for(i = 0; i < size; i++) // error seen here 
    { 
    array[i] = 0; 
    } 
} 

나는이 모든 것을 완전히 잃어 버렸기 때문에 어떤 도움을 많이 주셨습니다. 이것이 코드의 다른 곳에서 calloc() 호출과 관련 될 수 있는지 확실하지 않지만 valgrind가 모든 초기화 행에서 선택됩니다.

+3

후 정확하고 완전한 코드를 작성합니다. 정확하고 완전한 valgrind 결과를 게시하십시오. – kaylum

+0

아쉽게도 프로덕션 코드를 게시 할 수 없으므로 코드 조각을 제공하는 것이 가장 좋습니다. – Sadia1990

+2

전체 프로덕션 코드 일 필요는 없습니다. 문제를 보여주는 완벽한 예를 게시하십시오. [mcve]를 참조하십시오. – kaylum

답변

0

Valgrind의의 --max-stackframe 옵션은/무효의 원인이 스택 읽기를 날려 피하기 위해 사용되어야합니다