![]() |
1
4
您永远不会初始化numcars——它包含堆中的一些值,几乎肯定是非零的。这会导致您在cars数组的末尾读取数据,并进入不可访问的内存中。您应该在构造函数中将numcars设置为0。 除此之外,您应该在addcar中有一些支票,这样您就不会超过cars数组。 编辑: 代码还有其他一些问题,例如,“d=dealer();”创建了一个新的经销商,并覆盖了您引用addcars传递的经销商,而addcars似乎不是您想要做的。 尝试向构造函数/析构函数添加一些额外的跟踪,以验证您认为被调用的构造函数实际上是-看起来dealer()应该使用您指定的默认参数调用构造函数,但如果不是这样,它将获取默认的构造函数。 |
![]() |
2
1
您没有初始化
你必须使用原始指针吗?为什么不把它包起来用呢
|
![]() |
3
1
以上代码中的任何内容都不会初始化dealer::numcars。因此,它可以是任何随机的垃圾。 |
![]() |
4
1
也许我没看到,但你最初是在哪里设置numcars的? |
![]() |
5
0
这看起来像 内存泄漏 对我来说,从那以后,你不会释放以前的记忆 汽车 指针:
这段代码应该防止溢出的情况:
通过这样做:
|
![]() |
6
0
我看不到来自已发布代码的任何问题。问题可能出在别处? 您可能可以尝试以下操作:
|
![]() |
Leslie Zhou · “”未在此作用域中声明[已关闭] 7 年前 |
![]() |
Luc Aux · 在同一构造函数中初始化和分配动态内存 7 年前 |
![]() |
TwoTinyTurtles · VBA动态数组错误复制某些值 7 年前 |
![]() |
Trace Langfels · 指针、动态数组和内存泄漏 7 年前 |
|
LiamJM · 二维数组-表达式必须具有常数值错误 7 年前 |
![]() |
Sam Estep · 这是瞬态的正确用法吗? 7 年前 |
![]() |
Xalion · C++填充动态数组int 8 年前 |