elm*_*ehi 1 c memory allocation sizeof
我如何为c中的给定char数组*bla分配内存?
blaarray = (char*)malloc(strlen(bla)*sizeof(bla));
Run Code Online (Sandbox Code Playgroud)
要么
blaarray = (char*)malloc(strlen(bla)*sizeof(char*));
Run Code Online (Sandbox Code Playgroud)
还是两个?
谢谢
**注意编辑以反映愚蠢的拼写错误.我意外地错误地粘贴了选项
如果您想要blaarray与字符串大小相同bla
blaarray = malloc((strlen(bla)+1) * sizeof(char));
Run Code Online (Sandbox Code Playgroud)
现在让我解释一下.
1)要获取字符串的长度,请仅使用strlen()notsizeof
2)1必须添加因为在返回长度时strlen()不包括\0字符
3)char*是指针char,要获得a的大小char,应该做的sizeof(char)
4)当然你需要申报blaarray,你可以这样做
char* blaarray;
Run Code Online (Sandbox Code Playgroud)
5)你不需要投出回报malloc(),看看这个.
6)sizeof(char)是1,所以你可以跳过它.
所以,你的所有代码都应该是这样的.
char* blaarray;
blaarray = malloc((strlen(bla)+1));
Run Code Online (Sandbox Code Playgroud)