2012-08-08 66 views

回答

3

我想,如果你想改變該行的代碼編譯器問:

memset(ctx, 0, sizeof(*ctx)); 
+0

這絕對有效。 – Linda 2012-08-09 15:39:41

0

您可以擺脫警告:

size_t len = sizeof(ctx); 
memset(ctx, 0, len); 

但是,這隻會零前4個字節的結構。正如@ dans3itz所說,它可能是一個代碼錯誤和sizeof(* ctx)可能是什麼意思。因爲正如評論所說這是爲了「保護」,所以對於該功能的操作並不是真的必要。有趣的是,這些代碼一直沒有人在這些年中挑選出來。

+0

我不認爲代碼是正確的; ctx是一個指向結構體的指針,寫入的代碼會清除結構體中第一個指針大小的字節,這很奇怪。 – 2012-08-08 20:42:56

+0

我改變了評論。它發生在我發佈後,我不正確地想出我的迴應(如已經注意到:-)) – 2012-08-08 21:03:24