Другие языки программирования и технологии

Напишите пожалуйста примеры функций выделения памяти и освобождения памяти (с аргументами) в С++ ?

// Прежде чем запустить программу,
// следует запустить диспетчер задач и перейти на вкладку Быстродействие
// и обратить внимание на выделение и освобождение памяти во время работы программы
#include <iostream>
using namespace std;
int* create_vector(const size_t);
void delete_vector(int*);
int** create_matrix(const size_t, const size_t);
void delete_matrix(int**, const size_t);
bool exist_matrix(int**);
int main() {
size_t n = 100000000, m = 1000;
int** matrix = create_matrix(n, m);
delete_matrix(matrix, n);
if (exist_matrix(matrix)) cout << " Matrix " << n << " x " << m << " exist!\n";
else cout << " Matrix " << n << " x " << m << " does not exist!\n";
n = 5, m = 8;
matrix = create_matrix(n, m);
if (exist_matrix(matrix)) cout << " Matrix " << n << " x " << m << " exist!\n";
else cout << " Matrix " << n << " x " << m << " does not exist!\n";
delete_matrix(matrix, n);
cin.get();
}
int* create_vector(const size_t size) { return new(nothrow) int[size]; }
void delete_vector(int* ptr) { if (ptr) delete[] ptr; }
int** create_matrix(const size_t rows, const size_t cols) {
int** ptr = nullptr;
if (ptr = new(nothrow) int*[rows]) {
for (size_t row = 0; row < rows; ++row) {
if (ptr[row] = create_vector(cols));
else {
for (size_t r = 0; r < row; ++r) delete[] ptr[r];
ptr = nullptr;
break;
}
}
}
return ptr;
}
void delete_matrix(int** mx, const size_t s) {
if (mx && s) {
for (size_t i = 0; i < s; ++i) delete_vector(mx[i]);
delete[] mx;
}
}
bool exist_matrix(int** p) { return p? true : false; }
Юрий Решетов
Юрий Решетов
63 934
Лучший ответ
//---------------------------------------------------------------------------
#include <string.h>//для strcpy
#include <stdio.h>//для printf
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int Size=25;
char *Str;
Str=new char[Size];//Выделение памяти размером Size
strcpy(Str, "Hello, World !!!");
printf(Str);
delete Str;//Освобождение памяти
getc(stdin);//Ждём нажатия клавиши Enter
return 0;
}
//---------------------------------------------------------------------------

//хотелось бы поконкретнее вопрос услышать, а то выделять и освобождать память можно под любые структуры