gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:12 25 4
gpt4 key购买 nike

如何在 c 语言中为给定的字符数组 *bla 分配内存?

blaarray = (char*)malloc(strlen(bla)*sizeof(bla));

blaarray = (char*)malloc(strlen(bla)*sizeof(char*));

还是两者都不是?

谢谢

**注意编辑以反射(reflect)愚蠢的拼写错误。我不小心把选项粘贴错了

最佳答案

如果你希望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));

关于c - 在c中为字符串分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com