typedef struct{
uint len;
uchar *s;
}nint;
typedef struct{
xtime_t log_time[16];
uchar log_uchar[16];
ushort log_ushort[16];
uint log_uint[16];
uint log_addr[16];
ulong log_ulong[16];
nint log_nint[32];
}LOG;
typedef struct{
int code;
LOG *log;
long total;
char type;
}QueryChat;
queryChat->log = (LOG *)malloc(sizeof(LOG)*gettotal);
memset(queryChat->log,0,sizeof(LOG)*gettotal);
for (j = 0; j < 32; j++){
if (fread(&((queryChat->log+i)->log_nint[j].len), sizeof(int), 1, fp) != 1){
goto _FAIL_;
}
if ((queryChat->log+i)->log_nint[j].len){
if (((queryChat->log+i)->log_nint[j].s = (u_char*)malloc((queryChat->log+i)->log_nint[j].len + 1)) != NULL){
if (fread((queryChat->log+i)->log_nint[j].s, (queryChat->log+i)->log_nint[j].len, 1, fp) != 1){
goto _FAIL_;
} else {
(queryChat->log+i)->log_nint[j].s[(queryChat->log+i)->log_nint[j].len] = 0;
}
}
}
}
int j=0,k=getnum;
if(NULL != queryChat){
for(i=0;i<k;i++){
if(queryChat->log+i){
for(j=0;j<32;j++){
if((queryChat->log+i)->log_nint[j].s){
free((queryChat->log+i)->log_nint[j].s);
(queryChat->log+i)->log_nint[j].s = NULL;
}
}
}
free(queryChat->log);
free(queryChat);
queryChat = NULL;
}
}
指针释放之结构体
最新推荐文章于 2026-01-28 22:41:07 发布
本文深入探讨了数据结构的高效使用与内存管理策略,包括动态分配与释放内存的技术细节,以及如何优化数据结构以提升程序性能。通过实例解析,帮助开发者掌握关键技巧。

3011

被折叠的 条评论
为什么被折叠?



