2012-08-08 39 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