Mehrdimensionale Arrays: Größe ändern
-
Hi all,
hab ein Problem:ich habe ein mehr- (genauer 2-) dimensionales Array, dessen Größe sich zur Laufzeit ändern soll.
int n = 0 ; int* array[n][n] ; // int* array[0][0] ; printf ("Wie groß soll das Array sein? ") ; scanf ("%i", &n) ; /* Und hier komme ich nicht weiter! Wie kann ich das Array auf die eingegebene Größe bringen? */
-
std::vector<std::vector<int *> > array(1, std::vector<int *>(1)); array.resize(28); array[1].resize(5); array[2].resize(5); ...
-
danke
funktioniert das nur in C++? oder auch in C
-
wir sind hier im ansi c forum
-
nur in C
-
++
-
int iX=n,iY=n; //Dimensionen typedef struct{ int* pInt; int x,y; } _INTARRAY; //Array erzeugen _INTARRAY CreateArray(int x,int y){ _INTARRAY oArray; oArray.pInt=malloc(sizeof(int)*x*y); oArray.x=x; oArray.y=y; return oArray; } //Array löschen void DestroyArray(_INTARRAY *pArray){ free(pArray.pInt); memset((char*)pArray,0),sizeof( _INTARRAY)); } void ResizeArray(_INTARRAY *pArray,int x,int y){ _INTARRAY pNew= CreateArray(x,y); memcpy((char*)pNew.pInt,(char*)pArray->pInt,(x*y) > (pArray->x*pArray->y) ? (pArray->x*pArray->y)*sizeof(int) : (x*y)*sizeof(int)); DestroyArray(pArray->pInt); pArray->pInt= pNew.pInt; pArray->x= x; pArray->y= y; }