Hi, I am trying to test what is the maximum allocatable dynamic memory on a give machine. For my surprise I see wonders happening, and I don't have an explaination to it. I understand a bit that, it doesn't have to do with compilers entirely, and hece seeking explaination. this test fails allocating memory for index 68561 which means => allocated memory is (68561000000*8) bytes =>X => X/1024/1024/1024 = 510.82 Gig ??? May be I am missing something, tried running it on a 2 & 4 Gig phyiscal memory machines, with a swap space of 8Gig. I shall appreciate any feedback, Thank you, Sonata. ========================================== #include <iostream> // Million entries #define X_DIM 1000000 using namespace std; int main() { cout<<"******** MEMORY ALLOCATION TEST: ********"<<endl; int size_d = sizeof(double); cout<<"Using Double: "<<size_d<<endl; int limit_reached = 0; double **dd_array; unsigned long int i = 0; dd_array = new double*[X_DIM]; while(!limit_reached || i < X_DIM) { try{ cerr<<"Trying allocation: "<<i<<endl; *(dd_array+i++) = new double[X_DIM]; cerr<<"\t Allocated memory: "<<std::scientific<<i*X_DIM<<endl; } catch(...){ limit_reached = 1; cerr<<"\nUnable to allocate memory for 'Index': "<<i<<endl; return 0; } } cout<<"******* SUCCESSFUL MEMORY ALLOCATION *******"<<endl; return(0); } Thank you, Sonata. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com