具有null的c字符串数组失败

问题描述 投票:0回答:2

返回字符串数组的方法。由于某种原因,该方法在访问专门用于最后一个NULL值的字符串值时失败。

static char **getList() {
    char **list = (char *[]){"ABC", "DEF", NULL};
    char **interests = malloc(sizeof(char*) * 3);
    int i = 0;
    while(*list) {
        interests[i] = malloc(sizeof(char) * strlen(*list));
        strcpy(interests[i++], *list);
        list++;
    }
    return interests;
}

使用中

char **interests = getList();
while(*interests) {
    puts(*interests);
    interests++;
}

附带的屏幕截图。

enter image description here

返回字符串数组的方法。由于某种原因,该方法在访问专门用于最后一个NULL值的字符串值时失败。静态char ** getList(){char ** list =(char * []){“ ...

c
2个回答
1
投票
  • 使用strlen(),缺少用于终止空字符的空间的分配。

0
投票
在显示的代码中

您做了一些... weird

© www.soinside.com 2019 - 2024. All rights reserved.