我想在C ++中对结构进行内存分配,如下所示。这样做很好:
m_temppkt = new pktstruct();
,结构是:
struct pktstruct {
void *address;
int length;
struct pktstruct *next;
};
答案 0 :(得分:1)
这样做很好,但m_temmkt->地址中的内存不会被分配(即你为指针分配空间,而不是指针指向的内存)。
最佳解决方案是使用构造函数初始化值:
struct pktstruct {
void *address;
int length;
struct pktstruct *next;
pktstruct(void* s, int l);
};
pktstruct::pktstruct(void* a, int l)
: address(a), length(l), next(NULL)
{
}
m_temppkt = new pktstruct(NULL, 0); // initializes with { NULL, 0, NULL }