qq_45823672 2020-01-31 15:50 采纳率: 100%
浏览 946
已采纳

动态数组中间出现-842150451 好难受哟

//头文件
#pragma once
#include
#include
#include

template
class arry
{
public:
arry(int size = 4) {
m_arry = new LH[size];
m_size = size;
m_num = 0;
}

void pushnumber(LH n) {

    if (m_num >= m_size ) {
        change();
    }
    m_arry[m_num] = n;
    m_num++;    
}
void lprintf(int m){
    cout << m_arry[m]<<endl;
}

~arry() {
    delete[]m_arry;
    cout << "析构函数";
}

private:
void change() {

    int n_size = m_size + 4;
    LH *n_arry = new LH[n_size];        
    memcpy(n_arry, m_arry, m_size);
    delete[]m_arry;
    m_arry = n_arry;
    m_size = n_size;
}

private:
int m_size;
LH *m_arry;
int m_num;
};
//源文件----------------
#include"lin.h"

using namespace std;

int main(void) {
arry a;

for (int n=0; n < 8; n++) {
    a.pushnumber(n);
    a.lprintf(n);   
}
cout << "-----------"<<endl;

for (int n = 0; n < 8 n++) {

    a.lprintf(n);
}

system("pause");
return 0;

}

输出结果
0
1
2
3
4
5
6

7

0
-842150451
-842150451
-842150451
4
5
6
7

  • 写回答

2条回答 默认 最新

  • dabocaiqq 2020-02-02 11:12
    关注

    memcpy(n_arry, m_arry, m_size);
    ->
    memcpy(n_arry, m_arry, sizeof(LH) * m_size);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)