gpt4 book ai didi

c - 段错误(核心已转储)- C

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:20 24 4
gpt4 key购买 nike

这是程序的一部分,我需要知道参数是否为 int。我不明白为什么会出现此错误“段错误(核心已转储)”。

int main(int argc,char* argv[])
{
int i = 1;
while(i < argc)
{
if(isdigit(argv[i]))
printf("OK\n");
else
printf("NOT OK\n");
i++;
}
}

最佳答案

这就是您要找的。

 int main(int argc,char* argv[])
{
int i = 1;
int j;
while(i < argc)
{
j = 0;
while (argv[i][j] != 0)
{
if(isdigit(argv[i][j]))
printf("OK\n");
else
printf("NOT OK\n");
j++;
}
i++;
}
}

argv[i] 是指针,不是数据。您正在传递一个指针,其中需要一个 char (我认为)。

您应该使用带有 gcc 的警告标志来编译您的文件:-w -Wall -Wextra 它会告诉您您传递了错误类型的参数。

如果 digit 需要一个 int 你必须将 argv[i][j] 转换成一个 int with atoi(argv[i] [j])

关于c - 段错误(核心已转储)- C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46574437/

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