带有字符串数组的C语言malloc



我试图通过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而出现)…

相关内容

  • 没有找到相关文章

最新更新