ВУЗ:
Составители:
Рубрика:
void Del_mem ( float ** A, int n )
{
for ( int i =0; i < n ; i ++) // удаляем память – строки матрицы
delete[] A[i]; // Так правильно удаляется память, выделенная под массив
// delete[]
delete[] A; // удаляем сам массив указателей
return;
}
// Вывод матрицы на экран
void print_matrix (float **A, int n, int m, char *format)
{
for ( int i =0; i < n ; i ++)
{
for ( int j =0; j < m ; j ++)
printf (format, A[i][j]);
printf ("\n");
}
return;
}
1.11 Ошибки в программах, возникающие из-за неправильного
использования указателей и методы их устранения.
Большинство ошибок в программах на языке С/ С++ является следствием
неправильного использования указателей. Во-первых, применение
неинициализированного указателя недопустимо. Во-вторых, если память
выделяется динамически с помощью оператора new, то нельзя забывать об
операторе delete. В противном случае будет иметь место утечка памяти. В-
третьих, к указателям не установленным в ноль оператор delete нельзя
применять дважды.
delete [] massiv;
// выполняется код программы
……………………………
……………………………
……………………………
// и повторно
delete [] massiv; // так нельзя
Однако, если указатель установить в ноль, то повторное использование
delete уже безопасно.
delete [] massiv;
massiv = NULL;
delete [] massiv; // так безопасно
21
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »