gpt4 book ai didi

c - 警告 : assignment from incompatible pointer type buffer

转载 作者:行者123 更新时间:2023-12-02 02:10:57 24 4
gpt4 key购买 nike

for(i = 0; i < sizeof(buff); i++) if(buff[i] = ' ') ++num;
char **parts[num];
char *p;
p = strtok(buff, " ");
int j = 0;
while(p != NULL)
{
parts[j] = p;
j++;
p = strtok(NULL, " ");
}

编译时出现警告:

assignment from incompatible pointer type, where parts[j] = p is.

我能做什么?

最佳答案

我假设您想将单个标记存储在一个数组中。正如当前声明的那样,parts 是指向指针的指针数组。这不是您想要的 C 字符串数组 - 您需要删除一个星号:

char *parts[num]; // This requires at least C99

请注意,num 需要从 1 开始,而不是从 0 开始,因为您要获得的 token 数量是一个大于您将在字符串中找到的空格数。

一旦你这样做了,你的程序仍然需要在它处理 strtok 结果的方式上做一些修正:你应该存储结果以备下次调用strtok,因为这些结果变得无效。相反,您应该在将标记存储在 parts 数组中之前复制它们:

parts[j] = strdup(p);

关于c - 警告 : assignment from incompatible pointer type buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925513/

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