[問題] C++ 釋放陣列的問題
我試圖宣告並釋放一個簡單的二維陣列,
在呼叫 func( 10000000,10 ); 的情況下記憶體似乎無法被釋放,
用 top 看如下
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27342 aaaaaaa 20 0 461m 458m 920 R 100.0 22.7 0:09.85 b02.out
31753 root 20 0 261m 100m 8904 R 3.0 5.0 67:24.75 Xorg
32195 aaaaaaa 20 0 97608 34m 12m S 1.7 1.7 5:57.84 gnome-terminal
若選擇 func( 1000000,100 ) 則記憶體成功釋放,
27390 aaaaaaa 20 0 3396 1336 920 R 100.0 0.1 0:09.10 b02.out
31753 root 20 0 255m 94m 9096 S 2.0 4.7 67:28.05 Xorg
誰能告訴我是怎麼回事? 謝謝
// --------------
void everloop( const string &line ) {
cout << "everloop( "+line+" ):\n";
int rvalue=0;
for (;;) {
rvalue = rand();
if ( rvalue < 0 ) break;
}
}
void func( int length,int dimension ) {
int **sources = new int*[ length ];
for ( int i=0;i<length;i++ ) {
sources[i] = new int[ dimension ];
}
for ( int i=0;i<length;i++ ) {
delete [] sources[i];
}
delete [] sources;
}
int main() {
srand( time(0) );
func( 10000000,10 );
// func( 1000000,100 );
everloop( "main" );
}
// ----------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 171.64.92.108
推
02/20 10:15, , 1F
02/20 10:15, 1F
→
02/20 10:15, , 2F
02/20 10:15, 2F
→
02/20 10:16, , 3F
02/20 10:16, 3F
→
02/20 10:16, , 4F
02/20 10:16, 4F
→
02/20 10:17, , 5F
02/20 10:17, 5F
→
02/20 10:17, , 6F
02/20 10:17, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章