围绕变量“输入”的堆栈已损坏(Stack around the variable 'input' was corrupted)

我刚开始使用C语言,但遇到了这个错误。 我试图在网上查找,但其他线程包含我不熟悉的ARRAY。

#include

int main(void){

char input;

printf("ASCII testing\n");

scanf( "%d", &input); //the error occurs here but would like to know the solution

printf("answer is : %c\n" , input);

system("pause");

return 0;

}

“运行时检查失败#2 - 围绕变量”输入“的堆栈已损坏。”

简单的指出将非常感激

//编辑

那么我想输入值“66”,这样结果将是B. scanf(“%c,&input)接受来自键盘的1次击键,所以这不是我正在寻找的。但尽管如此,谢谢你的回复

I just started my C language and I came to this error. I tried to look up online but other threads contain ARRAY which I am not familiarize with.

#include

int main(void){

char input;

printf("ASCII testing\n");

scanf( "%d", &input); //the error occurs here but would like to know the solution

printf("answer is : %c\n" , input);

system("pause");

return 0;

}

"Run-Time Check Failure #2 - Stack around the variable 'input' was corrupted."

Simple point-out will be much appreciated

//Edited

Well I would like to enter value "66" so that the outcome would be B. The scanf("%c , &input) accepts 1 keystroke from the keyboard so that's not what I am looking for. But nevertheless, thank you for the replies

原文:https://stackoverflow.com/questions/11749983

更新时间:2019-12-27 04:52

最满意答案

scanf()的%d格式说明符需要一个指向int变量的指针,而不是指向char的指针。 尝试:

int input;

scanf( "%d", &input);

The %d format specifier in scanf() requires a pointer to an int variable, not a pointer to a char. Try:

int input;

scanf( "%d", &input);

2012-07-31

相关问答

发生这种情况是因为YESNO是一个字符数组,并且cin >> YESNO; 正在为此数组写一个NULL终止符。 将YESNO的声明更改为char YESNO; ,并删除数组运算符,你很高兴。 This is happening because YESNO is an array of characters, and cin >> YESNO; is writing a NULL terminator to this array. Change the declaration of YESNO to

...

fgets()的第一个参数是缓冲区上的指针(它的大小应该大于或等于第二个参数。但sizeof(char)== 1) int main() {

char m_cityCharCount[4];

// Input the number of cities

fgets(m_cityCharCount, 4, stdin);

return 0;

}

First parameter of fgets() is pointer on buffer (size of it shou

...

这个错误是为什么gets被弃用的理由的一个完美例证:它很容易出现缓冲区溢出 ,这会导致栈或任何内存碰到缓冲区末尾。 当用户输入两个以上的字符时,前三个字符被放入缓冲区,其余的进入缓冲区后的内存中,导致未定义的行为。 你需要用一个fgets的调用来代替gets的调用,它接受缓冲区的大小,end可以防止用户输入超出它: fgets (inputArr, 3, stdin);

每次迭代时,用户都会进入 ,最后,当他想停止时,他只能进入 。 fgets认为字符串的'\n'部分,所以当用户输入时,返回字符

...

scanf()的%d格式说明符需要一个指向int变量的指针,而不是指向char的指针。 尝试: int input;

scanf( "%d", &input);

The %d format specifier in scanf() requires a pointer to an int variable, not a pointer to a char. Try: int input;

scanf( "%d", &input);

我的问题是访问不存在的数组的索引我忘了在C ++中识别数组时您键入数组内的元素数而不是数组的最后一个索引。 令我困惑的是抛出错误的地方,当使用断点进行调试时,它会在退出void main()时抛出异常,而不是在访问未识别的数组元素时抛出异常。 My problem was accessing the an index of the array which doesn't exist i forgot that when identifying an array in C++ You type th

...

听起来像VS不能处理%hhu : https : %hhu 重要的细节是您正在使用Windows,并且可能是过时的或不符合要求的C环境(编译器和标准库)。 MSVCRT仅支持C89(即使如此,也不完全正确); 特别是,C89中没有“hh”修饰符,它可能将“hh”解释为“h”(即短)。 Sounds like VS doesn't handle %hhu: https://stackoverflow.com/a/15825386/1715829 The important detail is tha

...

这是一个非常可靠的诊断,VC6没有它。 虚假警告的几率为零。 请注意,在移植之前,您的代码库中可能存在此问题。 它警告的错误非常严重,通常很难在没有帮助的情况下进行诊断。 然而,它不一定是致命的问题,它可能潜伏在代码中很长一段时间。 只是突然爆发出来并且带着非常无辜的代码变化而肆虐。 只需使用Release构建设置重建程序就足够了,这使得诊断问题变得更加困难。 您的代码片段太不透明,无法提出原因,未记录的函数可能会导致它。 我只是描述诊断的工作方式,这样你就可以调试它。 / RTC调试选项使编译器

...

文件不是很清楚。 返回的字符串是WCHAR,每个字符两个字节而不是一个,所以你需要分配两倍的空间,否则你会得到一个缓冲区溢出。 尝试: BOOL result;

WCHAR oldWallPaper[(MAX_PATH + 1)];

result = SystemParametersInfo(SPI_GETDESKWALLPAPER,

_tcslen(oldWallPaper), oldWallPaper, 0);

也可以看看: http://msdn.microsoft.com/en-

...

问题出在这里 char pChar;

itoa(iMod, &pChar, 10 );

itoa使用一系列字符而不是单个字符。 你可以在这里找到如何使用itoa例子。 此外,如果你正在使用itoa ,你可以避免整个DecToHex()函数,只需要调用itoa int val;

char pHexValueBuffer[256]

cout << "Enter a Decimal Number\n\n" << flush;

cin >> val;

itoa(val, pHexValueBuffer

...

扫描char使用 scanf("%c", &ch);

使用错误的格式说明符将导致未定义的行为。 请确保忽略换行符,并在%c之前放置一个空格 scanf(" %c", &ch);

%c之前的空格将确保忽略缓冲区中的换行符。 即空间吞噬新行字符。 To scan a char use scanf("%c", &ch);

Using wrong format specifier will lead to undefined behavior. Please make sure you ignore

...

c语言变量周围堆栈损坏csdn,围绕变量“输入”的堆栈已损坏(Stack around the variable 'input' was corrupted)...相关推荐

  1. C语言,一个分号引发的问题:Run-Time Check Failure #2 - Stack around the variable ‘class1‘ was corrupted.

    上课时做de一个案例如上图 函数是这样的,并没有问题 void score(float s[], int num) {float avg, max=s[0];float sum = 0;int i = ...

  2. 【mac】「终端查看完整命令记录」「提示软件已损坏,无法打开」「sip~」「Vcsa安装」「errno 30」「E325」

    小白小白学生党,只是作为学习日记整理,方便日后查看,如有不足请指出--谢谢 (最后啊-Mac本机内存只有8g,撑不起来ESXi,哭泣告终) (提问:最后文章发布的文章类型怎么填写啊-要怎么去找文章中链 ...

  3. 如何用revit打不开服务器文件,Revit教程 | Revit打开文件错误(文件已损坏)

    问题: 在 Revit 中打开文件时,显示以下错误信息: Revit 文件已损坏 文件 (文件名).rvt 中的数据已损坏,需要手动恢复. 注意:如果仅当选中"核查"框时出现此错误 ...

  4. Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值...

    版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一.什么是指针? 简单来说: 指针就是内存地址      内存地址就是指针. ...

  5. R语言使用coin包应用于分类变量独立性问题的置换检验(permutation tests)、使用普通卡方检验chisq.test函数和置换近似卡方检验chisq.test函数、检验分类变量的独立性

    R语言使用coin包应用于分类变量独立性问题的置换检验(permutation tests).使用普通卡方检验chisq.test函数和置换近似卡方检验chisq.test函数.检验分类变量的独立性( ...

  6. R语言使用table函数计算单分类变量的频率表(frequency table)、使用prop.table函数将table函数计算获得的频率表转化为比率表、返回单分类变量每一个类别的比率、或者百分比

    R语言使用table函数计算单分类变量的频率表(frequency table).使用prop.table函数将table函数计算获得的频率表转化为比率表.返回单分类变量每一个类别的比率.或者百分比. ...

  7. R语言dataframe创建新的特征(变量)、行加和特征、行均值特征(基于加减乘除、指数、模数等操作符)、创建新的特征(变量)、生成编码特征(基于比较操作符、逻辑操作符)

    R语言dataframe创建新的特征(变量).行加和特征.行均值特征(基于加减乘除.指数.模数等操作符).为dataframe创建新的特征(变量).生成编码特征(基于比较操作符.逻辑操作符) 目录

  8. R语言可视化分面图、单变量分组多水平t检验并指定参考水平、可视化单变量分组多水平分面箱图(faceting boxplot)并添加显著性水平、指定显著性参考水平、添加抖动数据点

    R语言可视化分面图.单变量分组多水平t检验并指定参考水平.可视化单变量分组多水平分面箱图(faceting boxplot)并添加显著性水平.指定显著性参考水平.添加抖动数据点 目录

  9. R语言广义加性模型GAMs:可视化每个变量的样条函数、样条函数与变量与目标变量之间的平滑曲线比较、并进行多变量的归一化比较、测试广义线性加性模型GAMs在测试集上的表现(防止过拟合)

    R语言广义加性模型GAMs:可视化每个变量的样条函数.样条函数与变量与目标变量之间的平滑曲线比较.并进行多变量的归一化比较.测试广义线性加性模型GAMs在测试集上的表现(防止过拟合) 目录

最新文章

  1. NVIDIA DRIVE AGX开发工具包
  2. Windows 安装 pytorch3d
  3. 开发日记-20190613 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  4. 自备干货!如何有效的做竞品迭代分析
  5. Python练习 | 初识Python、数据类型、基本语句
  6. Pascal's Triangle II
  7. git提交代码到自己的分支,并合并到主分支的完整流程。
  8. amazon alexa_在Amazon Alexa上推出freeCodeCamp编码琐事测验
  9. 【转】近期Coolite控件的技术点总结
  10. linux命令里的xz是干嘛的,linux xz命令详解
  11. ligertoolbar 动态加载按钮_Axure利用动态面板实现环形加载进度条
  12. php 隐藏路径,急!!!隐藏路径问题
  13. Affinity Designer 查询面板渐变颜色
  14. 2 分钟玩转 Apizza,轻量级 API 工具
  15. 答复达内同学 2007-08-11
  16. AI美杜莎来袭 · 光点2021
  17. bootstrap实现开关切换
  18. MongoTemplate根据时间查询的大坑
  19. 网页上文件的上传和下载
  20. Shell 编程三剑客

热门文章

  1. 【转】常用电源转换芯片
  2. 镜像格式二十年:从 Knoppix 到 OCI-Image-v2
  3. html表白画画,超可爱·少女心·表白简笔画:我喜欢你,你就得跟我在一起!
  4. java课堂作业部分
  5. VS2015——Qt工程不能生成moc文件的解决办法
  6. 精心整理的MYSQL面试题
  7. 俞军产品方法论读书心得笔记
  8. 【转】如何读学术论文
  9. 2011年华为企业业务的15件大事
  10. python pyz_Python pyzfp包_程序模块 - PyPI - Python中文网