char* buf;
buf = malloc(BUFSIZ);
memset(buf ,0 , BUFSIZ);
我认为memset初始化buf变量的大小为BUFSIZ,但是malloc也分配了一块大小为BUFSIZE的内存,并返回一个指向该块开头的指针给变量buf……不知道memset能不能用用于指针,因为它使用大小 BUFSIZE 初始化数据,但我们不指向它....您能提出任何解决此问题的建议吗,谢谢
大家好,感谢您的回答。所以我明白问题通常来自这样一个事实,即 malloc 可能会失败,然后 buf 将指向 NULL。也许修复代码缺陷的最好方法是检查 buf 是否等于 null?
char* buf;
buf = malloc(BUFSIZ);
if(buf!=null)
{
memset(buf ,0 , BUFSIZ);
}
也许修复代码缺陷的最好方法是检查 buf 是否等于 null?
char* buf;
buf = malloc(BUFSIZ);
if(buf!=null)
{
memset(buf ,0 , BUFSIZ);
}
在实践中 malloc 是否有可能失败?或者它只是一个理论?