2013-05-30 56 views
-2

將堆棧上的局部變量傳遞給函數調用時如何破壞數據?傳遞到另一個函數時局部變量的數據損壞

{ 
    int Array[4]; 

    Array[0] = 1; 
    Array[1] = 2; 
    Array[2] = 3; 
    Array[3] = 4; 

    test_struct->arr = Array; 
    //(Where arr is a pointer to array) 
    Demo(test_struct); 
} 

如果將數組傳遞給另一個函數,會出現什麼問題?數據損壞有沒有可能性 ?

+1

「數據損壞」是什麼意思?你還可以向我們展示'test_struct'的定義和'Demo'的實現嗎? – simonc

+0

請張貼更多代碼。此外,「數據損壞」發生在哪裏? – Nobilis

回答

0

那麼,如果Demo()有錯誤,導致它寫在Array的範圍之外,它不知道什麼,它當然可以損壞內存,是的。

請注意,您不能在Demo()中使用sizeof來計算大小,您必須有一個單獨的參數(或struct member)來告訴可用的元素數量。

相關問題