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

C语言中malloc问题? sizeof?

C语言中malloc问题? sizeof?

汪汪一只猫 2019-04-13 08:45:23
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贡献1921条经验 获得超9个赞

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

TA贡献1911条经验 获得超7个赞

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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信