Предупреждающее сообщение в C++: delete [ ] a
Привет,
Я получаю следующее предупреждающее сообщение в своем коде:
$ г++ GES1.cpp
GES1.cpp: в функции ‘int main(int, char**)’:
Повышенную Квинту ges1.ЧГК:100:14: предупреждение: удаление массива "а"
удалить [ ] A;
Мой код без функции GaussElimination(....) выглядит следующим образом:
#include <iostream> #include <cmath> #include <fstream> #include <ctime> #include <vector> #define n 3 using namespace std; void GaussianElimination(double **,double *b ,double *y); int main(int argc, char * argv[]) { /* values Row0 = 0, 2, 1; b0= -8 Row1 = 1, -2, -3; b1 = 0 Row3 = -1, 1, 2; b2= 3 Ans = -4, -5, 2 */ //int **A = new {{0.0, 2.0, 1.0, -8.0}, {1.0, -2.0, -3.0, 0.0},{-1.0, 1.0, 2.0,3.0}}; double *A[n]; for (int i=0; i < n; i++) A[i] = new double [n]; double *b = new double[n]; double *y = new double[n]; A[0][0] =0.0;A[0][1] =2.0; A[0][2] = 1.0; //A[0][3] = -8.0; A[1][0] =1.0;A[1][1] =-2.0; A[1][2] =-3.0; //A[1][3] = 0.0; A[2][0] =-1.0;A[0][1] =1.0; A[0][2] = 2.0; //A[0][3] = 3.0; b[0] = -8.0; b[1] = 0.0; b[2] = 3.0; GaussianElimination(A, b ,y); delete [] y; delete [ ]b; for(int i = 0; i < n; i++) delete [] A[i]; delete [ ] A; }
Какое-нибудь тело, пожалуйста, направьте меня.
Зульфи.
Что я уже пробовал:
Извините, я не могу понять, потому что я использую тот же код в другой программе без какого-либо предупреждающего сообщения.
Зульфи.
0x01AA
Потому что нет никакой необходимости удалять а?
Подумайте еще раз о своем коде: for (int i=0; i < n; i++)
A[i] = new double [n];
и for(int i = 0; i < n; i++)
delete [] A[i];
нет необходимости удалять A, потому что он никогда не был выделен и больше это просто "переменная стека".
zak100
Благослови тебя Господь. Спасибо за Ваш быстрый ответ.
Зульфи.
0x01AA
Я не думаю, что Бог заботится о таких тривиальных вещах.
Бруно