亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2023 | 回復(fù): 2
打印 上一主題 下一主題

[C] 這個 clearpool 怎么寫 ? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-08-20 08:02 |只看該作者 |倒序瀏覽
#include<stdio.h>
#include<stdlib.h>
typedef struct _anyT {
int val;
} anyT;

#define UNITS 10

typedef union _data_block {
                union _data_block *next;
                anyT the_type;

} data_block;

static data_block *free_list = NULL;

static void moremem(void) {
  int i;
  data_block *more = calloc(sizeof(data_block),UNITS);
  for(i = 0; i < UNITS; i++) {
        more[i].next = free_list;
        free_list = more + i;
  }
}

anyT *allocanyT(void) {
  data_block *current;
  if(free_list == NULL) {
        moremem();
        return allocanyT();
  }
  current = free_list;
  free_list = free_list->next;
  return &(current->the_type);

}

void freeanyT(anyT *x)
{
  ((data_block *)x)->next = free_list;
  free_list = (data_block *)x;
}

void clearpool() {  
data_block *head;
anyT* cur;
for(head=free_list;head;head=free_list) {
    free_list=free_list->next;
    cur=(anyT*)&head->the_type;
    free(cur);
}
}

#define MAX 100
int main() {
anyT* arr[MAX];
int i;

for(i=0; i<MAX; i++)
  arr[i]=allocanyT();

clearpool();
}

如上所見, function clearppool 沒有真正清除 pool 里的 objects, 怎樣做才對呢?

論壇徽章:
0
2 [報告]
發(fā)表于 2010-08-20 13:46 |只看該作者
在moremem中: 調(diào)用 malloc UNITS 次然后連接起來試試

論壇徽章:
0
3 [報告]
發(fā)表于 2010-08-20 21:39 |只看該作者
static void moremem(void) {
  int i;
  data_block *more = calloc(sizeof(data_block),UNITS);
  for(i = 0; i < UNITS; i++) {
        more[i].next = free_list; //<<<
        free_list = more + i;       //<<<
  }
}

連接起來了阿!不是嗎?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP