内存堆问题C++,动态分配多维数组 我从下面的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; } if(谐波类型=='a') { double**谐波含量=新的double*[所需的谐波数量到监视器](); 对于(inti=0;i

内存堆问题C++,动态分配多维数组 我从下面的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; } if(谐波类型=='a') { double**谐波含量=新的double*[所需的谐波数量到监视器](); 对于(inti=0;i,c++,arrays,memory-management,memory-leaks,multidimensional-array,C++,Arrays,Memory Management,Memory Leaks,Multidimensional Array,In 创建的元素总数:monitor所需谐波数 在 最后一个读取元素不存在:它有索引 No.BythyOne,HythOrthixsRead 1,>/P>> p>你使用C++。所以使用它的优点。 如果监控所需的谐波数是编译时常数,则整个代码可以缩减为: #include <array> //... auto* harmonic_content = new std::array<std::array<double, number_of_harmonics_required

In

创建的元素总数:
monitor所需谐波数


最后一个读取元素不存在:它有索引<代码> No.BythyOne,HythOrthixsRead 1,

>/P>> p>你使用C++。所以使用它的优点。 如果监控所需的谐波数是编译时常数,则整个代码可以缩减为:

#include <array>
//...

auto* harmonic_content = new std::array<std::array<double, number_of_harmonics_required_to_monitor>, number_of_harmonics_required_to_monitor>;

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;
}


delete harmonic_content;
#包括
//...
自动*谐波含量=新标准::阵列;
对于(int i=1;i
    for (int i=0;i<number_of_harmonics_required_to_monitor+1;i++)
    for (int i=1;i<number_of_harmonics_required_to_monitor+1;i++)
#include <array>
//...

auto* harmonic_content = new std::array<std::array<double, number_of_harmonics_required_to_monitor>, number_of_harmonics_required_to_monitor>;

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;
}


delete harmonic_content;