我的應用程序啓動時,我正在使用malloc分配一些空間。如果我不填充此變量頂部顯示此應用程序使用的內存的0%,但如果我開始填充此變量頂部開始顯示增加使用RAM的方式我填充此數組。C malloc,僅當填充時的內存使用
所以我的問題是:不應該頂部顯示這個由malloc分配的空間作爲我的應用程序的已用空間?爲什麼當我填充這個變量時,它只會顯示從我的應用中增加的RAM使用量?
我在Ubuntu 10.10 64bits。下面是填充它的代碼:
char pack(uint64_t list, char bits, uint64_t *list_compressed, char control, uint64_t *index){
uint64_t a, rest;
if(control == 0){
a = list;
}
else{
rest = list >> (64 - control);
a = (control == 64 ? list_compressed[*index] : list_compressed[*index] + (list << control));
if(control + bits >= 64){
control = control - 64;
//list_compressed[*index] = a;
(*index)++;
a = rest;
}
}
//list_compressed[*index] = a;
control = control + bits;
return control;
}
「malloqued」變量是list_compressed。
如果我取消註釋list_compressed填充,ram用法會增加,如果我保留註釋,則用法爲0%。
http://en.wikipedia.org/wiki/Virtual_memory – 2012-04-21 20:37:09