Как выпустить динамическую память на куче в вызываемой функции C ++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как выпустить динамическую память на куче в вызываемой функции C ++

Сообщение Anonymous »

Код: Выделить всё

#include 

using namespace std;

int* apply_all(int* arr1, int size1, int* arr2, int size2){
int* on_the_heap = new int(size1 * size2);

int temp = 0;

for(int i {0}; i < size2; i++){
for(int j {0}; j < size1; j++){
*(on_the_heap + temp) = *(arr2 + i) * (*(arr1 + j));
temp++;
}
}

return on_the_heap; // How do i release this memory?
}

int main() {

const size_t array1_size {5};
const size_t array2_size {3};

int array1[] {1,2,3,4,5};
int array2[] {10,20,30};

int *results = apply_all(array1, array1_size, array2, array2_size);
constexpr size_t result_size {array1_size * array2_size};

cout 
Это о создании и выпуске памяти в куче. Я создал int * on_the_heap = new Int (size1 * size2) 
на куче, но я не могу выпустить память. Мне нужна помощь в том, как выпустить память. < /P>
Код выполняется, но с ошибкой в ​​конце. Я попытался выпустить память в функции main () , но не работаю.


Подробнее здесь: https://stackoverflow.com/questions/797 ... function-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»