CPP访问冲突错误
CPP access violation Error
我一直收到这个错误:0x40496a处的访问冲突:写入地址0x0。我使用Borland C++。
这是我的源代码。
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int main()
{
char *nm;
cout<<"n Enter a name: ";
gets(nm);
cout<<"n Name: "<<nm;
getch();
return 0;
}
即使我将char*nm设置为NULL或使用cin>>作为输入,我也会得到同样的错误。请帮忙,谢谢。
当您声明nm
时,您没有初始化它,这意味着nm
的值是不确定的,它并没有真正指向任何地方(实际上它指向一个看似随机的位置)。你需要让它指向一个足够大的东西来容纳你输入的字符串。
使用未初始化的变量和NULL
指针会导致未定义的行为,其最常见的结果是崩溃。
要解决此问题,请将其指向一个已初始化的数组:
char str[20];
char* nm = str;
或者为字符串动态分配内存:
char* nm = new char[20];
或者更好的是,不要将字符指针用作字符串,并且特别是gets
函数(它很危险,甚至已从C标准中删除),使用C++std::string
类和std::getline
函数来获取行:
std::string nm;
std::getline(std::cin, nm);
或者,如果你只想得到一个空格分隔的单词,可以使用普通的输入运算符:
std::string nm;
std::cin >> nm;
相关文章:
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 使用 EvtSetChannelConfigProperty() 函数时出现访问冲突错误
- 引发异常:读取访问冲突.**此**0x40错误
- 在尝试使用CUDA分配内存时,我遇到了访问冲突写入位置错误
- cv::resize() 失败并出现访问冲突错误(由 NULL> 处的 <struct 引起)
- 在 C 代码中调用 Python 函数时第三次出现访问冲突写入位置错误
- 错误 : 异常 : 引发未处理的异常: 读取访问冲突.0xDDDDDDDD临时温度
- 读取访问冲突. _Mycont 在 C++ 中将 udp 数据放入向量时出现 nullptr 错误
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- 遵循官方 Direct2D 示例,但出现访问冲突错误
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- C++访问冲突读取位置错误
- Eigen SparseLU解决错误读取访问冲突,这>m_sup_to_col被0x111011101110112
- C++ 抛出读取访问冲突错误,但我不确定为什么。平铺滑块益智游戏
- 为什么我的顶点缓冲区对象出现访问冲突错误?
- 尝试创建结构对象,在位置0x3FE00000中创建访问冲突写入错误
- 销毁 Box2D 主体 - 读取访问冲突错误
- C++数组错误:访问冲突读取位置0xC0000005
- C++LinkedList错误:访问冲突错误
- 错误访问冲突写入位置0x00229C20.尝试在控制台中输入字符串时