C语言中malloc问题? sizeof?

C语言中malloc分配内存
比如下面的方法:
char *foo(char*name){
char*str=malloc(strlen(name)+1);//我这里有点纠结
returnstr;
}
上面方法中使用malloc分配内存,我有点纠结该分配多少?
我看到的:
strlen(name)+1
sizeof(char)+strlen(name)+1
sizeof(char*)+strlen(name)+1
如果是对于int或者是struct的类型?我该怎么分配
汪汪一只猫
浏览 401回答 2
2回答

郎朗坤

strlen返回字符串的长度,不包括结尾的\0,所以如果你要复制一个字符串的话,当然是strlen(name)+1。后面两种你从哪儿扯出来的?

Smart猫小萌

对于字符串用strlen(name)+1,其中strlen(name)是为了保存字符串,+1是为了添加字符串结束符'\0';其它情况通常用sizeof(xxx)即可.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript