Array erklæring i C

M

manish12

Guest
HVORFOR DENNE PROGRAM dont arbeide?

Her om jeg erklærer arr [100] [100] så fungerer det, men hvis jeg øke array størrelsen til 1000, gjør det ikke?# include <iostream>
using namespace std;

int main ()
(
int i, j;
double arr [1000] [1000];
for (i = 1; i <= 1000; i )
for (j = 1; j <= 1000; j )
cout <<a [j] <<endl;
return 0;
)

 
100 * 100 = 10.000 elementer i array (0x2710), 10K * 8 byte = 80 Kbytes
1000 * 1000 = 1.000.000 elementer i array (0xF4240), 1M * 8 byte = 8 MB

For stor for array?
Har 250 x 250 array arbeid (250 * 250 = 62500 eller 0xF424)?
Mislykkes 300 x 300 array (300 * 300 = 90000 eller 0x15F90)?

 
Du bør bruke minnetildeling funksjoner i stedet for matrisen for store data.

double * p = new double [1000 * 1000];

fungerer godt.

 
Vel, [1000] [1000] er bare for stor!!Som rmitoday sier prøve minnetildeling

 
Bruk alltid dynamisk tildeling av minnet for store datastørrelse
bruk malaloc moro

 
# include <iostream>
using namespace std;

int main ()
(
int i, j;

double arr [1000] [1000];for (i = 1; i <= 1000; i )for (j = 1; j <= 1000; j )

cout <<a [j] <<endl;
return 0;
)

Størrelsen av 1000 midler går 0 til 999, så bruk denne

for (i = 0; i <1000; i )
for (j = 0; j <1000; j )

Rolf

 
vær ikke glem å opprinnelige disse variabel, en [][], før du bruker dem i rettssalen <<...;

 

Welcome to EDABoard.com

Sponsor

Back
Top