
memset初始化指针指向
char*send;使用malloc为send分配空间后用:memset(send,0,sizeof(send));然后用:if(NULL==send){printf("...
char *send;
使用malloc为send分配空间后用:
memset(send, 0, sizeof(send));
然后用:
if (NULL == send) {
printf("null\n");
}
为啥这里不会打印null呢?用memset()会让send指向ascii的0,即NUL?谢谢!
ascii的0是空字符,不是NULL空地址 展开
使用malloc为send分配空间后用:
memset(send, 0, sizeof(send));
然后用:
if (NULL == send) {
printf("null\n");
}
为啥这里不会打印null呢?用memset()会让send指向ascii的0,即NUL?谢谢!
ascii的0是空字符,不是NULL空地址 展开
3个回答
展开全部
if (NULL == send) {
printf("null\n");
}
这句话是判断send是否“指向空”(例如malloc时候错误等等)而不是其指向的内容
memset(send, 0, sizeof(send));只是将其指向的内容的一片连续区域的内存设为0
两者不是一回事
printf("null\n");
}
这句话是判断send是否“指向空”(例如malloc时候错误等等)而不是其指向的内容
memset(send, 0, sizeof(send));只是将其指向的内容的一片连续区域的内存设为0
两者不是一回事

2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
两个问题:
一、char *send;
使用malloc为send分配空间后用:
memset(send, 0, sizeof(send)); //这句应用不合适,不能完全初始化send所指向的地址空间
****************************************sizeof(send)==4(32位机上,所有指针的长度都是四个字节)
应当这样应用
send=malloc( Length ); //Length为要申请的空间大小(字节数)
if ( send == NULL ) //malloc出错会返回NULL给send
{
printf("malloc error!" );
exit(-1);
}
memset( send , 0 , Length ); //注意这里的长度为Length,即申请多少空间就初始化多大内存
二、if (NULL == send) { //malloc成功后,send就指向了新分配的址,当然不是NULL
printf("null\n");
}
一、char *send;
使用malloc为send分配空间后用:
memset(send, 0, sizeof(send)); //这句应用不合适,不能完全初始化send所指向的地址空间
****************************************sizeof(send)==4(32位机上,所有指针的长度都是四个字节)
应当这样应用
send=malloc( Length ); //Length为要申请的空间大小(字节数)
if ( send == NULL ) //malloc出错会返回NULL给send
{
printf("malloc error!" );
exit(-1);
}
memset( send , 0 , Length ); //注意这里的长度为Length,即申请多少空间就初始化多大内存
二、if (NULL == send) { //malloc成功后,send就指向了新分配的址,当然不是NULL
printf("null\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
memset是初始化send指针指向的内存,send指针本身存储在另外一个地方,如果send==NULL,要memset函数做什么。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询