gpt4 book ai didi

c - 运行时检查失败 #2 - 变量 'MinNum' 周围的堆栈已损坏

转载 作者:行者123 更新时间:2023-11-30 18:55:47 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>
#include <ctime>

void main()
{
unsigned _int8 MinNum;
unsigned _int8 MaxNum;
unsigned _int8 Guess;
unsigned _int8 MagicNum;

printf("Please enter the minimum value (0 - 255): ");
scanf("%d", &MinNum);

printf("Please enter the maximum value (%d - 255): ", MinNum);
scanf("%d", &MaxNum);

printf("Guess a number between %d - %d", MinNum, MaxNum);
scanf("%d", &Guess);

srand((unsigned)time(NULL));
MagicNum = (rand() % MaxNum + MinNum);

if (Guess > MagicNum)
{
printf("You guessed too high.");
}
else if (Guess < MagicNum)
{
printf("You guessed too low.");
}
else
{
printf("You win.");
}
}

这段代码给了我标题中指定的错误。我上网查了一下,发现这个错误是因为你分配给变量的数据超出了数据限制,但不知道哪里超出了MinNum的限制。

最佳答案

scanf("%d", &num)预计numint -类型。使用 sizeof(othertype) < sizeof(int) 传递类型的地址是未定义的行为。

如果你想scanf()进入char - 大小的变量,你必须使用 scanf("%hhd", &num)scanf("%c", &num) .
同样的原则也适用于printf() , 顺便一提。使用printf("%hhd", num)printf("%c", num)num类型为char .

此外,main()的返回类型在C中是int .

关于c - 运行时检查失败 #2 - 变量 'MinNum' 周围的堆栈已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414164/

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