#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef struct data_struct
{
int len;
int data_msg;
char data[0];
}data_struct;
#define DATA_BUF_LEN 32
int main(int argc, char* argv[]) {
data_struct * zbuffer = NULL;
/// 开辟
if ((zbuffer = (struct data_struct *)malloc(sizeof(struct data_struct) + sizeof(char) * DATA_BUF_LEN)) != NULL)
{
zbuffer->len = DATA_BUF_LEN;
memcpy(zbuffer->data, "Hello World", DATA_BUF_LEN);
printf("%d, %s\n", zbuffer->len, zbuffer->data);
}
free(zbuffer); //一次释放即可
zbuffer = NULL;
}