1

有没有办法创建一个函数,可以将一块内存分配到堆上,调用者可以传递他们想要分配的大小并返回一个有效地址供调用者使用?我知道如何分配特定的大小,但有没有办法让调用者传递所需的数量?

4

1 回答 1

5

绝对:即使在C malloc//callocrealloc都以大小为参数,他们并不关心这个大小是从哪里来的;也一样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;
于 2013-04-20T02:43:34.087 回答