我是C新手,對初始化結構有疑問。我正在使用我還沒有創建的結構,所以我不知道里面有什麼。因此,我沒有初始化它,但編譯器抱怨。所以我把它設置爲NULL,但我得到了分段錯誤。然後,我查找了如何將所有內容都設置爲0,並將其設置爲等於{0}。這也給我一個分段錯誤。因爲我知道我所調用的函數是正確的,而且我傳遞它的數組的大小是正確的,我幾乎可以肯定它與我初始化結構的方式有關。初始化是在C中初始化結構 - 避免分段錯誤
struct aes_ctx *aes_struct = {0}
該函數的頭是
void aes_setkey(aes_ctx *aes, const void *key, u_int len);
,我稱它是
aes_setkey(aes_struct, aes, CCA_STRENGTH);
其中AES是大小16的緩衝方式,CCA_STRENGTH是常量int爲16.
爲了總結這個問題,我認爲我初始化結構體c的方式使它稍後無法使用。任何可以給我的幫助,這將是如此讚賞! 謝謝!
關鍵的一點是,你的代碼不分配一個結構,它分配一個指向結構。這是您在開始初始化之前需要專注於理解的內容。 – 2012-03-09 18:20:08
http://www.scs.stanford.edu/nyu/05sp/lab/lab1.html? – 2012-03-09 18:22:27