c - 在C中使用字符串数组

标签 c malloc

我只是在练习理解 C 中的动态分配。我收到了段错误错误。我不确定我在哪里犯了错误。

int wordcount = 5;
char **args = (char**)malloc(wordcount * sizeof(char*));

for ( int i = 0; i < wordcount; i++) {
    args[i] = (char*)malloc(167 * sizeof(char));
}

int c=0;
while(c < wordcount){
    strcpy("hello\n",  args[c]);
    c++;
}

最佳答案

您正在尝试将 args[c] 复制到 "hello\n" 字符串的位置,该字符串位于只读存储器中,您应该更改顺序参数。

关于c - 在C中使用字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50427514/

相关文章:

c++ - (Windows HID API)HidD_GetPreparsedData() 由于句柄不正确而在 WM_INPUT 消息处理程序中失败?

c - 检查数组中的数字是否有公因数的省时方法?

c - malloc() 成功但分配的内存少于预期

c - 如何读取.pgm文件并使用malloc分配内存?

c - fputs 中的 fgets 给出段错误

c - 以二的幂分配内存更好吗?

处理 eps/pdf 的 C++ 库

c - 如何在内核编程中执行shell命令?

代码在 Debug模式下工作正常,但在正常运行时失败

objective-c - 为什么 C 编译器不警告 malloc 大小错误?