我可以用新的内存分配一块内存吗?

Jon*_*Mee 1 c c++ malloc new-operator dynamic-memory-allocation

所以考虑到这个结构:

typedef struct {
    int* arr1;
    int* arr2;
} myStruct;
Run Code Online (Sandbox Code Playgroud)

这个答案描述了使用单个malloc来同时分配a myStruct和它的数组:

myStruct* p = malloc(sizeof(*p) + 10 * sizeof(*p->arr1) + 10 * num * sizeof(*p->arr2);

if(p != NULL) {
    p->arr1 = (int*)(p + 1);
    p->arr2 = p->arr1 + 10;
}
Run Code Online (Sandbox Code Playgroud)

我想知道有没有类似的方法来做到这一点new
显然,我希望能够分配到我在运行时收到的大小,就像使用C示例一样.

Mar*_*som 7

您可以使用new数组来分配一块内存char,然后使用placement new来调用该内存块上的构造函数.