Как удалить массив Stati c в C ++? - PullRequest
0 голосов
/ 07 февраля 2020

поэтому я записал фрагмент кода, в котором в стеке хранится 4 больших массива, и после выполнения некоторых шагов я хочу удалить эти массивы из памяти stati c, чтобы освободить место. Как я могу это сделать, потому что я не объявил эти массивы динамически ..... Пожалуйста, помогите, если есть короткая и немного легкая для понимания методология

например, мой код выглядит так

£include <iostream>
using namespace std;

int main () {
int T;
for (int i=0;i<T;i++)
{
int array[5000];
int array_2[1000];
/* 


more piece of code here

*/

// now how can i delete these arrays from the memory as they aren't //dynamically stored
}

return 0;
}

1 Ответ

2 голосов
/ 07 февраля 2020
for (int i=0;i<T;i++)
{
int array[5000];

// now how can i delete these arrays from the memory as they aren't //dynamically stored
}

Это массив с automati c длительностью хранения (не stati c). Вы не можете и не нуждаетесь в удалении памяти автоматных c объектов. Они «удаляются» (то есть объекты уничтожаются, а хранилище освобождается) автоматически , когда выполнение выходит за пределы области действия.

В этом примере область действия, в которой был объявлен массив, заканчивается сразу после комментарий интересно, как удалить массив. Таким образом, вам не нужно ничего делать, кроме как продолжить выполнение программы, чтобы «удалить» массив.

Объекты со хранилищем stati c также не могут быть удалены. Они создаются в начале программы (создание может быть отложено до первого использования) и уничтожаются в конце.


PS Поведение примера не определено, поскольку в нем используется неопределенное значение T.

...