gpt4 book ai didi

C编译器错误

转载 作者:行者123 更新时间:2023-12-01 16:26:33 25 4
gpt4 key购买 nike

我有以下程序:

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]){
char* number1[100] = {argv[1]};
char* a;
char* separate = "/ \n";
int alpha, beta, gamma, delta;
int i;
a = strtok(number1, separate);
printf("%s",a);
}

当我编译它时,它不断向我发出警告:“'char * '与'int'的间接级别不同”但到目前为止我使用的都是char*。

完整的错误消息如下:

a.c: In function 'main':
a.c:9:7: warning: assignment makes pointer from integer without a cast [enabled by default]

(第 9 行: a = strtok(number1, separate); )

谁能告诉我为什么会发生这种情况以及如何解决它?

最佳答案

您没有包含 string.h,因此未声明 strtok 函数。在旧版本的 C 语言中,允许使用未声明的函数(尽管 gcc 应该对此产生一个(额外的)警告 - 至少使用 -Wall),在这种情况下函数的返回类型假定为int。因此,编译器认为 strtok 返回一个 int,并因此警告您正在尝试将该 int 分配给指针。

要解决此问题,只需添加缺少的包含即可。

修复此问题后,编译器会提示 number1strtok 一起使用的类型错误(它是指针数组而不是指针),但是这是一个不同的问题。

关于C编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23636564/

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