为了账号安全,请及时绑定邮箱和手机立即绑定

C语言中malloc问题? sizeof?

C语言中malloc问题? sizeof?

绝地无双 2019-03-30 09:29:10
C语言中malloc分配内存比如下面的方法:char *foo(char*name){char*str=malloc(strlen(name)+1);//我这里有点纠结returnstr;}上面方法中使用malloc分配内存,我有点纠结该分配多少?我看到的:strlen(name)+1sizeof(char)+strlen(name)+1sizeof(char*)+strlen(name)+1如果是对于int或者是struct的类型?我该怎么分配
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

strlen返回字符串的长度,不包括结尾的\0,所以如果你要复制一个字符串的话,当然是strlen(name)+1。
后面两种你从哪儿扯出来的?
                            
查看完整回答
反对 回复 2019-03-30
?
函数式编程

TA贡献1807条经验 获得超9个赞

对于字符串用strlen(name)+1,其中strlen(name)是为了保存字符串,+1是为了添加字符串结束符'\0';
其它情况通常用sizeof(xxx)即可.
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号