这是在C++中制作可变大小结构的最佳方法吗?我不想使用vector,因为初始化后长度不会改变.
struct Packet
{
unsigned int bytelength;
unsigned int data[];
};
Packet* CreatePacket(unsigned int length)
{
Packet *output = (Packet*) malloc((length+1)*sizeof(unsigned int));
output->bytelength = length;
return output;
}
Run Code Online (Sandbox Code Playgroud)
编辑:重命名变量名称和更改的代码更正确.
我之前发布过这个主题,但现在我有一个更具体的问题/问题.
这是我的代码:
#include <cstdlib>
#include <iostream>
typedef struct{
unsigned int h;
unsigned int b[];
unsigned int t;
} pkt;
int main(){
unsigned int* arr = (unsigned int*) malloc(sizeof(int) * 10);
arr[0] = 0xafbb0000;
arr[1] = 0xafbb0001;
arr[2] = 0xafbb0011;
arr[3] = 0xafbb0111;
arr[4] = 0xafbb1111;
arr[5] = 0xafbc0000;
arr[6] = 0xafbc0001;
arr[7] = 0xafbc0011;
arr[8] = 0xafbc0111;
arr[9] = 0xafbc1111;
pkt* p = (pkt*) malloc(sizeof(int)*13);
p->h = 0x0905006a;
int counter;
Run Code Online (Sandbox Code Playgroud)
这是我得到的(counter = 0; counter <10; counter ++)p-> b …