Как выделить память на кучу через пользовательский ввод?

Есть ли способ создать функцию, которая может выделять кусок памяти в куче, где вызывающий может передать размер, который он хочет выделить, и вернуть действительный адрес для вызывающего абонента? Я знаю, как выделить определенный размер, но есть ли способ, чтобы вызывающий абонент передал желаемую сумму?

1

Решение

Абсолютно: даже в C malloc/calloc/realloc все принимают размер в качестве параметра, и им все равно, откуда этот размер; то же самое касается new,

Например, если вы хотите выделить указанное пользователем количество doubles, вы делаете это:

cout << "Enter the number of double elements that you want to allocate" << endl;
int count;
cin >> count;
// You can do this for C-style allocation...
double *chunkMalloc = malloc(sizeof(double)*count);
// ...or this for C++ style:
double *chunkNew = new double[count];
// Don't forget to free allocated chunks:
free(chunkMalloc);
delete[] chunkNew;
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]