Visual Studio 2010的访问冲突
Access Violation on Visual Studio 2010
我的c++代码有一个问题,看看这个函数:
void insere(titem x){
tlista *aux;
aux = (tlista*)malloc(sizeof(tlista));
aux->item = x;
ultimo->prox = aux;
ultimo = ultimo->prox;
aux->prox = NULL;
}
当执行:aux->item = x;
行时,Visual Studio显示:
TP6.exe中0x53eacafa (msvcr100 .dll)的未处理异常:
看我的struct item:
struct titem {
int prioridade;
string nome;
int freq;
};
在dev - c++中,代码工作正常!可能会出现什么问题,我该如何解决它?
您正在使用malloc
为对象分配内存。这将分配内存,但不会初始化对象。这对非pod成员来说是个问题,例如aux->item.nome
。
您需要使用new
而不是malloc。
tlista *aux = new tlista;
当你用完struct后,使用delete
来处理它。
delete aux;
既然你正在使用c++,你应该忘记所有的malloc
和free
。堆分配是用c++中的new
和delete
来执行的。
相关文章:
- 写入位置0x0000000C时发生访问冲突
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- C++尝试深度复制唯一指针时出现内存访问冲突
- C++ 中动态二维数组的访问冲突
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 写入访问冲突异常
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 读取访问冲突.这0xCDCDCDCD
- 0xC0000005:访问冲突读取位置 0x00000000. 重载 == 运算符的问题
- 插入数组时违反写访问冲突
- 使用 ReadProcessMemory 获取字符串值的访问冲突
- 尝试通过共享指针使用变量时读取访问冲突
- 堆栈上的 C++ 访问冲突写入异常
- VS 2010中的C++调试访问冲突
- Visual Studio 2010的访问冲突
- ..处的首次机会异常:读取位置时发生访问冲突..当使用Visual Studio 2010进行调试时
- visual studio 2010-C++中出现访问冲突错误