Zdravím,
poradili byste mi jak alokovat 3rozměrné dynamické pole?
Fórum › C / C++
3rozměrné dynamické pole
tak
int ** pole
a pak hromady mallocu
a hlavne to musis spravne uvolnit potom..
pole = malloc(sizeof(int **) * z);
for 0; z<rz.. malloc( sizeof(int *) * y)
for 0; y<ry malloc( sizeof(int) * x ) ...
a pak muzes pristupovat pomoci [z][y][x]
To nareklam : nikoliv.. musis uvolnit jeste ty zbyly 2 rozmery.. vesmes to bude opak alokace..
nejprve uvolnis vsechny pole intu.. pak vsechny pole ukazatelu na ne
a pak pole ukazatelu na ukazatele
no proste takhle ti to hodi nejspis segfault ma linuxu / nebo neco podobnyho na win
protoze uz se snazis uvolnovat az neco co je ulozeny v tom poli ne samotny pole
To KIIV : Pořád se mi to nedaří dealokovat. Takto alokuju:
if((platno=(short int***)malloc(sizeof(short int**)*SizeX))!=NULL){
for(j=0; j<SizeX; j++){
if((platno[j]=(short int**)malloc(sizeof(short int*)*SizeY))!=NULL){
for(k=0; k<SizeY; k++)
if((platno[j][k]=(short int*)malloc(sizeof(short int)*SizeZ))!=NULL);
}
}
}
A náznak dealokace?
for(j=0; j<SizeX; j++) {
for(k=0; k<SizeY; k++) {
free(platno[j][k]);
}
free(platno[j]);
}
free(platno);
maximalne muzes nahodit podminky jestli tam nejsou NULL pointery.. nebo si tam null po uvolneni mista nahazet
muzes zkusit udelat tu alokaci treba tisickrat po sobe a pak jeste to samy akorat vynechat to uvolnovani..
pak pochopis
jinak nejlepsi je na ladeni pameti linux a jeho nastroj valgrind... pro windows sem zadnou obdobu nenasel .. ikdyz uz dlouho sem ani nehledal
Na tieto veci existuje veľa nástrojov: valgrind , memprof , dmalloc 2 , ccmalloc , mpatrol , ElectricFence. Najlepší mi príde ten ElectricFence, ale teraz som po ňom pozeral na Googli a asi už nie je podporovaný, lebo mi nenašlo ani offic. stránku :-(
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Dynamicke pole — založil Earl Cash
Dynamicke pole — založil george6565
Ne/dynamicke pole — založil cecilconrad
Dynamické jednorozměrné pole — založil Epoxi
Dynamické pole reťazcov — založil gaben
Moderátoři diskuze