C语言中malloc分配内存
比如下面的方法:
char *foo(char *name){
char *str=malloc(strlen(name)+1);//我这里有点纠结
return str;
}
上面方法中使用malloc分配内存,我有点纠结该分配多少?
我看到的:
strlen(name)+1
sizeof(char)+strlen(name)+1
sizeof(char *)+strlen(name)+1
如果是对于int 或者是struct的类型 ? 我该怎么分配
strlen
返回字符串的长度,不包括结尾的\0,所以如果你要复制一个字符串的话,当然是strlen(name)+1
。后面两种你从哪儿扯出来的?