Hi 2 all, i try still to compile a big source. (see mails with subj: ' "virtual memory exhausted: Out of memory" with a large static array ') Now i try another way. I generate a source, where i do allocate an array dynamicaly in the heap and fill it out line by line with values. The values are irregular, so i have to have every value. (cannot implement some prescription for evaluation of them) The array has 7 dimensions. In every dimension 7 points. (can and will be more) My preprocessed source is ~51Mb and contains lines like ... void __create_array() { if (!__FLAG_NAME) { __ARRAY_NAME = new REAL******[P1X_N]; for (unsigned i=0; i<P1X_N; i++) { __ARRAY_NAME[i] = new REAL*****[P1Y_N]; for (unsigned j=0; j<P1Y_N; j++) { __ARRAY_NAME[i][j] = new REAL****[P1Z_N]; for (unsigned kk=0; kk<P1Z_N; kk++) { __ARRAY_NAME[i][j][kk] = new REAL***[P2X_N]; for (unsigned l=0; l<P2X_N; l++) { __ARRAY_NAME[i][j][kk][l] = new REAL**[P2Y_N]; for (unsigned mm=0; mm<P2Y_N; mm++) { __ARRAY_NAME[i][j][kk][l][mm] = new REAL*[P2Z_N]; for (unsigned ss=0; ss<P2Z_N; ss++) { __ARRAY_NAME[i][j][kk][l][mm][ss] = new REAL[KF_N]; } } } } } } ... __ARRAY_NAM[0][0][0][0][0][0][0] = 0.00034; __ARRAY_NAM[0][0][0][0][0][0][1] = 0.00024; ... __ARRAY_NAM[6][6][6][6][6][6][5] = 10.00034; __ARRAY_NAM[6][6][6][6][6][6][6] = 0.00024; .... __FLAG_NAME = true; } } One routine to clean the memory and "main" routine, where i play with the array (interpolate, build a graph of function and so on.) If i compile a preproccessed source i get the error message "cc1plus: out of memory allocating 33554432 bytes after a total of 38465536 bytes" How i have to interpret it? What the values " 33554432 " and "38465536 " are? About the system. Linux NAME 2.6.20-rc7-2-default #1 SMP Thu Feb 1 13:34:44 UTC 2007 i686 i686 i386 GNU/Linux g++ (GCC) 4.1.2 20070115 (prerelease) (SUSE Linux) 3Gb RAM, 120 Gb swap. Regards, Pavel.