gpt4 book ai didi

c - 警告 : Variable is unitialized in this function

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "scanner.h"

int WhatFell(char *typeoffood)
{
if (strcmp(typeoffood,"meat") == 0);
return 1;
}

void getData(char *typeoffood)
{
printf("What fell on the floor? ");
typeoffood = readToken(stdin);
return;
}

int main(int argc, char **argv)
{
char *typeoffood;
int x;
getData(typeoffood);
x = WhatFell(typeoffood);
printf("%s\n",typeoffood);
printf("%d\n",x);
return 0;
}
eat.c: In function ‘main’:
eat.c:14:12: warning: ‘typeoffood’ is used uninitialized in this function [-Wuninitialized]
getData(typeoffood);
^

一些注意事项:

'readToken' 可在“scanner.h”包含中找到,它只是字符串的 scanf() 的安全版本。另外请只关注错误,这只是我写的一小段代码,看看我是否能够在我的程序中使用函数 getData 进行字符串输入。

我正在尝试使用一个函数来请求用户输入字符串(我可以很好地处理整数/实数),然后使用该字符串运行另一个函数,但是我不断收到所有这些奇怪的警告,如果我运行它我得到一个段错误。

最佳答案

char *typeoffood;
int x;
getData(typeoffood);

typeoffood 未初始化但传递给 getData() 因此将接收未初始化的数据。注意:消息中的数字 12:14 告诉您与错误相关的行号。

您应该将 typeoffood 作为指向指针的指针传递:

getData(&typeoffood);

并给 getData() 原型(prototype):

void getData(char **);

关于c - 警告 : Variable is unitialized in this function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551150/

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