????????????????????д???????к????????????????д?????????????к????????????????????д???????????к?????????????????????????????????????????????????????????
????????????
?????????? C ????????????????????? C ????????????????б?????????????????棬??????????????????в?????????3???????????????????й?????????????
????C ????????й???????????????????????????????????????????????檔NULL ???δ?????????????????????????????????????Щ????????棬???????ó??????
????????????????и?????????С?????????????????е?????????????????????????????????????????С????????????????????????????????????????е???????????齺?????????????????????????????????????????????????????——?? C ??????????????????????
?????????????Щ???????????????????????????????????????????????????? C ???????????????????????? Java??C# ????????????????????????????Щ????????????????????????????????????GC??????????????????????????????????????????????????棬???????ж?????????????
????C ???????????????
????C ????????stdlib??????????е???????????????? malloc ?? free ?????????磬???????????У??????????з????? 7 ??????С???????????????
????#include
????void *p = malloc(7);
????free(p);
??????????????????У??????? 7 ???飬???????????????????н??л?????費???????????????????????????輸???鱻???????
???????????????????????洢?????????????
????int *n = malloc(4);
????*n = 7;
????free(n);
???????????? int ???????????????????????£????? sizeof???? C ????????????????????
????int *n = malloc(sizeof(int));
????*n = 7;
????free(n);
????????????????
?????? C ???????й?????????????????????????????????????????????????????Ц?????????????? C ???????????
?????????????????Щ???? Unix ?????????????????????仰?????????????????????????仰????????? Eric Raymond д???Unix ???????????????е? Unix ????????
????malloc ?? free ?? C ??????????????????????????????????????? C ?????????????磬??????????? malloc ?? free ?????????——??????????????????????????????????????ü???????????????????????? Lisp ??? John McCarthy ?????? Mark&Sweep ????????????????????????????????????ü????? Mark&Sweep ????????????????????????????????????Щ??????????? C ?????????????????
???????? Boehm GC ???????? C ?????????????????????????
????#include
????#include
????#include
????int main(void)
????{
????GC_INIT();
????for (int i = 0; i
?????? C ????????? Boehm GC ??????? GC_MALLOC ?? C_MALLOC_ATOMIC ?滻 malloc???????????е? free ???C_MALLOC_ATOMIC ?????????????洢???????????
??????????????Linux???а???? boehm-gc ?????????? 100 ?? Kb?????????? gcc ???????????????????????????£????????????£?
????$ gcc -lgc test-gc.c
????GNU ?? Scheme ?????? Guile 2.0 ????? boehm-gc ??????????????к????????? boehm-gc?????????????????????????
??????? C ???????????????????????????????????ü??????? Mark&Sweep ????????????壬???????????????????????????????磬?? Java??C# ???????????????У???????????????μ????????????——????????????????????????
????Eric Raymond ??????????????????????????????????(1) ??????????壬?????????????????(2) ?κβ?????????п????????????????????????????????????2?????????????????????????????????????????Ч???
????Unix ??????? C ?к????????????к???????????????????? C ?? Unix ??????? & ??????????——Unix ???? C ???????????? C ?????? Unix ?????????????????C ???????????????????????????????????????Щ???????????
????????????????? C ???????????? malloc + free ?????????????????????仯??????????????????????????????????????????????????? C++ 11 ??????????? Java ?? GC ????????????о?????????????????????????????????????????????????????籩?????????????????????????????????????????????п???????Щ????????????????……??Щ???β??????????????????????????????????????????????????????
?????????C ??????????????????????????????????????????????μ???????????