2016-09-16 43 views
-3

我在代碼上運行valgrind時初始化變量的行上出現「Invalid write size [1 | 4 | 8]」錯誤。當初始化變量(Valgrind和C)時寫入大小無效

E.g.

#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選項需要被使用,以避免吹堆這是造成無效的讀/寫