msgbuf实现mtext[1]可变长代码

来源:互联网 发布:kbengine java 编辑:程序博客网 时间:2024/06/03 08:13
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义类型
typedef struct msgbuf{
int msize;
char mtext[1];
}msgbuf_t;
int main(void){
char string[]="hello";
msgbuf_t *msg=(msgbuf_t *)malloc(sizeof(msgbuf_t)+strlen(string)-4);
msg->msize=sizeof(msgbuf_t)+strlen(string)-4;
strcpy(msg->mtext,string);
printf("mtext=%s\n",msg->mtext);
free(msg);
msg=NULL;
return 0;

}

/*实现了动态内存非配,根据所传字符串的大小分配msgbuf_t结构体的大小,合理避免空间浪费*/

原创粉丝点击