gpt4 book ai didi

c - 为什么我不能在我的代码中更改这里的虚拟变量?

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

好的,这是我为实现 atoi 的功能而尝试编写的一小段程序代码。功能。困扰我的是我无法更改 dummy if 中的变量阻止,而我可以更改 n变量。ndummy在同一范围内定义。

int main()
{

char *s;

puts("Enter a string");
fgets(s,100,stdin);
int n = 0 , dummy = 1; // both are defined in the same scope

for(int i = 0 ; i < 2 ; i++ )
{
if(isdigit( s[i] )) { n = n*10 + (s[i] - '0'); }

if(1)
{
dummy = dummy + 99; // This is the thing not working , program stops executing
// n = n + 99; while this works fine
printf("%d\n", dummy );
}
}
printf("%d", n);
}

我可以打印 dummy变量很好,但我无法为其分配一个值,当我尝试这样做时,该程序停止工作。如果我评论涉及 dummy 的行并使用 n 取消注释以下行,程序运行良好。

不要打乱逻辑。那么发生了什么?

最佳答案

char *s;

s 需要静态动态

分配内存
char s[100];

char *s = NULL;
s = malloc(100);
if (s)
/* do operations with s */
.
.
if (s)
free(s);

关于c - 为什么我不能在我的代码中更改这里的虚拟变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078152/

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