gpt4 book ai didi

C-警告 : assignment makes integer from pointer without cast

转载 作者:行者123 更新时间:2023-11-30 15:12:10 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,将字符串的偶数和奇数索引放入自己的数组中(每个数组末尾都有空终止符),这些数组存储在一个数组中:

char **result = malloc(sizeof(char*) * 2);
int a, b = 0;
int index = strlen(s) / 2;
if (strlen(s) % 2 == 1) {
result[0] = malloc(sizeof(char) * (index + 2));
result[1] = malloc(sizeof(char) * (index + 1));
result[0][index + 1] = "\0"; // 1
result[1][index] = "\0"; // 2
} else {
result[0] = malloc(sizeof(char) * (index + 1));
result[1] = malloc(sizeof(char) * (index + 1));
result[0][index] = "\0"; // 3
result[1][index] = "\0"; // 4
}
for (int i = 0; i < strlen(s); i++) {
if (i % 2 == 0) {
result[0][a] = s[i];
a++;
} else {
result[1][b] = s[i];
b++;
}
}
return result;

当我编译它时,注释行收到警告“赋值从指针生成整数而不进行强制转换”。我不明白这段代码有什么问题。帮忙?

最佳答案

在下面的作业中 -

result[0][index + 1] = "\0"; // 1
result[1][index] = "\0"; // 2

使用单引号 ' ' 而不是双引号。

"" 用于字符串文字,其中 result[1][index] 和类似的都是 char ,因此,您会得到警告。

result[0][index + 1] = '\0';      /*  <-- assigning character   */ 

关于C-警告 : assignment makes integer from pointer without cast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35192844/

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