gpt4 book ai didi

C malloc 与字符串数组

转载 作者:行者123 更新时间:2023-11-30 17:09:27 25 4
gpt4 key购买 nike

我试图通过用 char** 表示该数组来创建一个字符串数组。但是,我在这一行遇到段错误:

char** values = malloc(count*sizeof(char*)+1); //+1 for terminating NUL

有什么建议吗? countsize_t 类型的变量。感谢您的帮助!

编辑:之前的代码:

size_t count = 0;
char** counter = params;
while(*counter) {
count++;
counter += sizeof(char*);
}
count++; //one space for NULL
char** values = malloc((count + 1) * sizeof(char*)); // +1 for terminating NULL

最佳答案

由于 values 是一个指针数组,因此您使用的代码有问题。应该是:

char** values = malloc((count + 1) * sizeof(char*)); // +1 for terminating NULL

因为您需要 sizeof(char*) 字节(而不是 1 字节)作为终止 NULL。但是,尚不清楚这一行本身是否导致了段错误...也许是因为内存对齐问题(由于您正在使用的行中的 +1 错位而引起)。 .

关于C malloc 与字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33290966/

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