gpt4 book ai didi

c - 使用 C 中的值初始化 char 数组会导致段错误

转载 作者:行者123 更新时间:2023-11-30 20:35:13 24 4
gpt4 key购买 nike

我有一个 char 数组,定义如下

char users[5] = "";

然后,我通过分配将用户添加到该数组,如下所示

users[0] = "UserOne";
users[1] = "UserTwo";

但是,我的程序因段错误而崩溃。

我在网上查了一下,这似乎与内存有关。我尝试搜索一篇讨论内存分配的帖子,并找到了 malloc。但是,我对 malloc 函数有点困惑。

我尝试使用

为我的 char 数组分配内存
users = malloc(sizeof(char));

有人可以向我解释一下我做错了什么吗?

最佳答案

char 是单个字符。

char* user[5];

这是创建指向 char 数组(字符串)的指针数组的正确方法。

我不知道用户声明中 = "" 的用途,但它应该是一个错误。你可以这样做

char* user[5] = { "", "userOne", "userTwo", "", "" };

关于c - 使用 C 中的值初始化 char 数组会导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40066250/

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