访问违规新C 结构
Access violation new c++ struct
我有这个结构:
struct event_ {
bool is_crossover = false;
bool is_birth = false;
bool is_repetitive = false;
int eID = 0;
bool inicio_fin = false;
fecha inicio_fecha;
fecha fin_fecha;
locacion inicio_l;
string eLatitud_i = 0;
string eLongitud_i = 0;
locacion fin_l;
string eLatitud_f = 0;
string eLongitud_f = 0;
personaje_info personajes_evento; //This is a class
int cantidad_personajes = 0;
string nombre;
string descripcion;
string tipo_evento;
event_ *sig, *ant;
};
然后,当我调用函数时:
event_ *n = new event_;
它向我发送了违规访问错误:
Exception thrown at 0x0F69F6E0 (ucrtbased.dll) in Auxiliar Libros.exe: 0xC0000005: Access violation reading location 0x00000000.
有人知道为什么会发生这种情况?作为其他信息,我运行了代码指标分析,在此之前,该程序效果很好。而且它告诉我例外,我该怎么办?
此代码
string eLongitud_f = 0;
用零指针调用字符串构造函数(0
是编写空指针的另一种方式),导致您的访问验证错误。
您认为代码在做什么?显然,0
不是string
的整数。你是说这个吗?
string eLongitud_f = "0";
还是您的意思?
string eLongitud_f = "";
也许你甚至是说这个
double eLongitud_f = 0.0;
您也可以拥有此
string eLongitud_f;
与上面的第二个替代方案相同。所有这些都是可能的,很难知道您真正想要哪个,但是基本问题是您有一个字符串变量,并且您试图给它一个不是字符串的值。
解决您的问题,我认为最好的办法是减少代码并尝试一些Combinaison。
首先,您必须尝试使用一个struct
的一点CC_4,以查看您的新功能是否正确
struct event_
{
bool is_crossover = false;
};
event_ *n = new event_;
如果您的程序继续崩溃,则您的错误存在,在new()。
中否则您可以尝试减少结构以删除您认为正确的内容。
人物,我认为您所有的bool
,int
和event_
声明都是正确的,因此我将其删除。我认为也可以删除类似的对象声明,然后将其删除。
我有以下结构:
struct event_
{
fecha fin_fecha;
locacion inicio_l;
string eLatitud_i = 0;
personaje_info personajes_evento;
};
当您构建和运行此代码时会发生什么?
如果您已经编程已停止崩溃,则错误是在删除的代码中?
否则,一个(或更多)声明的新结构线不正确。
如果更改结构对您的代码影响太大,则创建类似的结构(其他名称尚未使用)并进行测试。
拜托,你能尝试吗?我认为您会很快发现自己解决问题!
您的第一个代码中有太多的变量会产生您的崩溃?
相关文章:
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 访问存储在向量C++中的结构的多态成员
- 访问类lintalizer列表中的结构元素
- 仅使用结构名称访问结构成员
- 如何从其他结构访问受保护的结构变量
- 如何从类中定义的结构访问私有成员?c++
- 枚举范围无法通过 C++ 中的类中的结构访问
- 通过更高级别的结构访问子变量
- 从匿名结构访问枚举条目
- 如何定义别名以通过结构访问枚举类成员
- C 用于向量中的结构访问索引或使用参考值
- 奇怪的结构访问错误
- 将数组作为结构访问与未定义的行为
- 使用c++以及x86和x64体系结构访问处理器中断
- 使用 ostream 从另一个类的结构访问数据
- 从结构访问数组会使程序崩溃
- 联合中的C++结构访问联合成员
- SWIG如何使用Lua表从Lua中的c结构访问字节数组
- c++结构访问冲突