[問題] 關於struct和memory leak的問題(上一篇我也有打標題啦!)
大家好, 小弟一直對於記憶體管理這部分總是不清楚背後運作的方式, 想跟各位
請教一下;希望大家不吝指教~
我開發的平台是AIX, 想在上面寫一個類似agent的程式, pseudocode如下:
struct numbers
{
int number1;
double number2;
};
void main()
{
while (signl != SIGKILL)
{
numbers a;
getNumbers(&a);
cout << a.number1 << endl;
cout << a.number2 << endl;
sleep(timeInterval);
}
exit(-1);
}
void getNumbers(numbers* xx)
{
xx.number1 = from sensor's value.
xx.number2 = xx.number1++;
}
我想請教的問題如下:
1.struct變數儲存的位置是stack? 和class new的方式儲存的位置差異是?
2.上面這種agent應該滿常見的, 書上寫說離開block之後就會被free掉, 可是如果變數
一直keep在block內的話, 應該如何管理, 才能把記憶體回收掉? 記憶體又是什麼時候
才會回收? 以class來說的話, 是free的當下就立刻回收嗎?
3.要如何判斷使用的記憶體已歸還給OS? 我使用getrusage(RUSAGE_SELF, &rus);方法
能正確抓到程式本身已使用的記憶體嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.81.250
→
09/04 01:11, , 1F
09/04 01:11, 1F
推
09/04 09:13, , 2F
09/04 09:13, 2F
→
09/04 10:41, , 3F
09/04 10:41, 3F
推
09/04 10:59, , 4F
09/04 10:59, 4F
→
09/04 11:23, , 5F
09/04 11:23, 5F
推
09/04 11:36, , 6F
09/04 11:36, 6F
→
09/04 23:02, , 7F
09/04 23:02, 7F
→
09/04 23:03, , 8F
09/04 23:03, 8F
→
09/04 23:04, , 9F
09/04 23:04, 9F