#include <iostream>
#include <stdlib.h>
using namespace std;
float **div(float **A, float **B, int row, int column) {
float **D;
D = new float *[row];
// D= (float **)malloc(sizeof(float *) * row);
for (int x = 0; x < row; x++) {
D[x] = new float[column];
// D[x] = (float (*))malloc(sizeof(float) * column);
for (int y = 0; y < column; y++) {
D[x][y] = (A[x][y]/B[x][y]);
}
}
return D;
}
int main() {
int x = 0, y = 0, row = 20, column = 5;
float **N;
// N =(float **)malloc(sizeof(float *) * row);
N = new float *[row];
for (x = 0; x < row; x++) {
N[x] = new float[column];
// N[x]=(float*)malloc(row*column*sizeof(float));
for (y = 0; y < (column); y++) {
N[x][y] = 1;
}
}
N = div(N, N, row, column);
cout << "Displaying N ..." << endl;
for (int x = 0; x < 10; x++) {
for (int y = 0; y < 5; y++) {
cout << N[x][y] << " ";
}
cout << endl;
}
for (int x = 0; x < 20; x++) {
delete[] N[x];
}
delete[] N;
return 0;
}
Я пытаюсь освободить всю память, но она освобождается память, которую я объявленную в главной, но функция div
также занимающих один и тот же память размер входного массива N и это не освобождается. Есть ли способ удалить память, которая занята функцией.Высвобождение зазубренный массив в C++
Не перезаписывайте «N» новым значением, используйте переменную для возвращаемого значения. – molbdnilo
Пожалуйста, открепите свой код. –
Почему бы не использовать 'std :: vector>' (или 'std :: array <20, std :: array <4, float>>')? –
Jarod42