gpt4 book ai didi

c++ - C++中的堆损坏

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:08 25 4
gpt4 key购买 nike

当我在 Visual C++ 2010 中运行我的代码时,我在运行时遇到错误。

void dct2(){
float** G = new float*[len];
for(int u = 0; u < len; u++){
G[u] = new float[len];
for(int v = 0; v < len; v++){
G[u][v] = 0;
for(int x = 0; x < len; x++){
for(int y = 0; y < len; y++){
G[u][v] += a(u) * a(v) * (float)mat[x][y] * cos((PI / 8) * u * (x + 0.5)) * cos((PI / 8) * v * (y + 0.5));
}
}
}
}
doublecpy(G);
}
void doublecpy(float** d){
for(int i = 0; i < len; i++){
for(int j = 0; j < len; j++){
if(d[i][j] >= 0)
mat[i][j] = (int)(d[i][j] + 0.5);
else
mat[i][j] = (int)(d[i][j] - 0.5);
}
}
for(int i = 0; i < len; i++)
delete[] d[i];
delete[] d;
}

错误出现在行中:delete[] d[i];请告诉我这段代码是否有任何问题或任何建议。

最佳答案

除了你不应该以这种方式编写 C++(这只是 C 和 new 而不是 malloc)之外,我看不到任何内存错误,但不知道 mat 是什么以及它是如何分配的。

关于c++ - C++中的堆损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5104736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com