如何使用new在结构中分配变量来过度分配内存?

acr*_*ron 1 c++ allocation structure dynamic new-operator

所以我有几个结构......

struct myBaseStruct
{
};

struct myDerivedStruct : public myBaseStruct
{
    int a, b, c, d;
    unsigned char* ident;
};

myDerivedStruct* pNewStruct;
Run Code Online (Sandbox Code Playgroud)

...我希望动态分配足够的空间,以便我可以"记忆"某些数据,包括一个以零结尾的字符串.基本结构的大小显然是'1'(我假设因为它不能为零)并且派生的大小是20,这似乎是有意义的(5 x 4).

所以,我有一个大小为29的数据缓冲区,前16个字节是整数,其余13个是字符串.

如何为pNewStruct分配足够的内存,以便字符串足够?理想情况下,我只想去:

  • 在pNewStruct分配29个字节;
  • memcpy从缓冲区到pNewStruct;

谢谢,

jmu*_*llo 6

你回到C或放弃这些想法,并实际使用C++.

  • 使用构造函数分配内存和析构函数以删除它.
  • 不要让其他代码写入您的内存空间,创建一个确保分配内存的函数.
  • 使用std:string或std :: vector来保存数据而不是滚动自己的容器类.

理想情况下你应该说:

myDerivedClass*foo = new myDerivedClass(a,b,c,d,ident);