繁体   English   中英

在c中为字符串分配内存?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM