如何解决我正在使用 malloc 和 realloc 在 C++ 类中创建一个动态数组并获得断言失败检测到堆损坏提前致谢
- 我正在使用 malloc 和 realloc 在 C++ 类中创建一个动态数组,但我得到了断言
- 失败(检测到堆损坏)。
- 调用析构函数时出错
- 我使用的是免费的,但不明白代码哪里出错了
- 但是在调用 setIndexElement 之后我收到错误
class DynamicArray1
{
public:
int *ptr;
int len;
DynamicArray1()
{
ptr = (int*)malloc(2 * sizeof(int));
}
void setIndexElement(int index,int val)
{
int newsize = size();
if (index > newsize)
{
ptr = (int *)realloc(ptr,sizeof(int)*index);
}
ptr[index] = val;
len = index;
}
~DynamicArray1()
{
free(ptr);
}
};
int main()
{
DynamicArray1 d;
d.setIndexElement(0,10);
d.setIndexElement(1,11);
d.setIndexElement(2,4);
int x = d.newSize();
for(int i=0;i<=x;i++)
{
cout << d.getIndexval(i) << endl;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。