我有一个 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/