访问冲突写入位置错误
Access violation writing location error
我遇到一些访问冲突。我在写一个简单的程序,像数据库一样工作。
First-chance exception at 0x00088AB6 in kasia2.exe: 0xC0000005: Access violation writing location 0xCDCDCDCD.
Unhandled exception at 0x00088AB6 in kasia2.exe: 0xC0000005: Access violation writing location 0xCDCDCDCD.
连续第二次执行此步骤时出现问题。
cout << "Podaj autora: ";
cin.sync();
getline(cin, d[il].autor);
cout << "Podaj tytul: ";
cin.sync();
getline(cin, d[il].tytul);
cout << "Podaj date wydania: ";
cin >> d[il].data;
这是我研究的一个结构和内存分配。
struct Ksiazka
{
string autor;
string tytul;
int data;
};
struct Ksiazka * d = new Ksiazka;
有什么问题吗?
在d[il].autor
中,如果il
不完全是0
,您将访问尚未分配的内存。0xCDCDCDCD
是Microsoft未使用内存的"填充模式"之一,所以情况似乎是这样的。
如果你想要多个Ksiazka
集合,那么你应该这样做:
struct Ksiazka * d = new Ksiazka[x];
其中x
是你想要的数字。
或者,特别是当你不知道你实际"需要"多少的时候,使用std::vector
,像这样:
std::vector<Ksiazka> d;`
...
Ksiazaka tmp;
cout << "Podaj autora: ";
cin.sync();
getline(cin, tmp.autor);
cout << "Podaj tytul: ";
cin.sync();
getline(cin, tmp.tytul);
cout << "Podaj date wydania: ";
cin >> tmp.data;
d.push_back(tmp);
相关文章:
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 奇怪的Arduino C++编译错误取决于文件位置
- 我收到分段错误,但不了解分段错误发生的位置
- 访问特定阵列位置/索引时出现分段错误
- boost::p rogram_options 在指定意外的位置参数时不报告任何错误
- 快速排序;分段错误,但找不到位置?
- 在尝试使用CUDA分配内存时,我遇到了访问冲突写入位置错误
- 错误 在测试.exe 0x76C9FD62时出现未经处理的异常:Microsoft C++异常:内存位置0x006FF8
- 错误:内存位置的 std::length_error
- 处于默认参数位置的 Lambda 无法访问好友成员。这是编译器错误吗?
- 无法指出发生分段错误的位置
- 在 C 代码中调用 Python 函数时第三次出现访问冲突写入位置错误
- 目标提升::<library>已经有导入的位置 + 链接错误
- 如何使用 Poco Json 解析器确定输入文档中错误的位置?
- 在动态加载的位置无关的可执行文件中分离错误
- Visual studio显示SEH异常的错误位置
- 编译器运行时错误报告和错误位置
- 核心转储,但是找不到错误位置,有GDB的错误信息
- 如何使用精灵解析器获得错误位置