c++ - 内存堆问题C++,动态分配多维数组

标签 c++ arrays memory-management memory-leaks multidimensional-array

我正在从以下 C++ 脚本中获取内存堆消息。如果我删除数组释放,错误就会消失。所以这个错误可能在代码的释放部分。我想不通

if(harmonic_type =='a')
{
    double ** harmonic_content = new double *[number_of_harmonics_required_to_monitor](); 
    for (int i=0;i<number_of_harmonics_required_to_monitor+1;i++) 
    {                                                           
        harmonic_content[i] = new double [2]();                 
    }
    harmonic_content =  harmonic_detector(waveformdata,number_of_samples,samplingrate_Hz, fundamental_frequency_Hz, number_of_harmonics_required_to_monitor,harmonic_type);

    for (int i=1;i<number_of_harmonics_required_to_monitor+1;i++)
    {                                   
        cout<<" Harmonic order "<< i << "::::" << harmonic_content[i][0] << " Hz ::::"<<harmonic_content[i][1] << " :::: "<<harmonic_content[i][2]<<endl;
    }

    for (int i=0;i<number_of_harmonics_required_to_monitor+1;i++) 
    {   
        delete [] harmonic_content [i];                 
    }
    delete [] harmonic_content;
}

最佳答案

    new double *[number_of_harmonics_required_to_monitor]()

创建的元素总数:number_of_harmonics_required_to_monitor

    for (int i=0;i<number_of_harmonics_required_to_monitor+1;i++)

写入的元素总数:number_of_harmonics_required_to_monitor+1(从 0 到 number_of_harmonics_required_to_monitor)

    for (int i=1;i<number_of_harmonics_required_to_monitor+1;i++)

最后读取的元素不存在:它具有索引 number_of_harmonics_required_to_monitor+1

关于c++ - 内存堆问题C++,动态分配多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25993375/

相关文章:

PHP变量引用和内存使用

c++ - 原始类型在 C++ 中也有构造函数吗?

windows - UNIX 与 Windows 内存释放

c - 在函数中初始化的数组指针在返回后包含错误值

C - 将数组分配给指针时出现 "incompatible type"警告

php - 从多维数组中的元素获取最大值?

javascript - FullCalendar - 将可变数量的事件添加到 eventSource

c++ - 在 Visual Studio 中调试 PIMPL(2012)

c++ - 求奇数之和的递归函数

c++ - 你如何使用这个数组而不是请求输入?