[英]Allocating Memory for string in c?
如何在C中为给定的char数组* bla分配内存?
blaarray = (char*)malloc(strlen(bla)*sizeof(bla));
要么
blaarray = (char*)malloc(strlen(bla)*sizeof(char*));
还是都不?
谢谢
**注意编辑内容以反映愚蠢的错字。 我不小心将选项贴错了
如果您希望blaarray
与字符串bla
具有相同的大小
blaarray = malloc((strlen(bla)+1) * sizeof(char));
现在让我解释一些观点。
1)要获取字符串的长度,请仅使用strlen()
而不使用sizeof
2)必须添加1
,因为strlen()
在返回长度时不包含\\0
字符
3) char*
是指向char
,得到的大小char
,一个应该做sizeof(char)
4)当然,您需要声明blaarray
,您可以这样做
char* blaarray;
5)您不需要malloc()
的返回值,请参阅this 。
6) sizeof(char)
为1,因此可以跳过。
因此,所有代码都应该看起来像。
char* blaarray;
blaarray = malloc((strlen(bla)+1));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.