array in array ?

hier ma 2 Statische Arrays:

int one [2][10] = { { 1, 2, 3, 4, 5, 6 , 7 ,8 ,9 ,10 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } };
int two [2][8] = { { 10, 20, 30, 40, 50, 60 , 70 ,80 }, { 10, 20, 30, 40, 50, 60, 70, 80} };

jetzt das Problem,
Die 2 Arrays von oben würde ich gerne in ein neues Array packen ?

NEW_ARRAY[0] = one;
NEW_ARRAY[1] = two;

Auch wenns merkwürdig erscheint, geht das ?

Wenn ja, wie macht man das ?

MfG
 
Hi.

Also das ist natürlich problematisch weil die Arrays nicht die gleiche Dimension haben.

Aber mit etwas Aufwand und Pointerarithmetik kann das gehen. Ist nur die Frage ob du das wirklich willst.

Code:
  int one[2][10] = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
		     { -1, -2, -3, 4, -5, -6, -7, -8, -9, -10 } };
  int two[2][8] = { { 10, 20, 30, 40, 50, 60, 70, 80 },
		    { 10, 20, 30, 40, 50, 60, 70, 80 } };

  int* new_array[2];

  new_array[0] = (int*)one;
  new_array[1] = (int*)two;

  int i = 1, j = 4;
  
  printf("%d\n", one[i][j]);
  printf("%d\n",
	 *( new_array[0] + i * sizeof(one[0])/sizeof(one[0][0]) + j));
  
  j = 6;
  printf("%d == %d\n", 
	 two[i][j], 
	 *( new_array[1] + i * sizeof(two[0])/sizeof(two[0][0]) + j));

/edit: Mir fällt gerade ein, das man das auch noch etwas anders machen könnte indem man dynamisch Speicher für Pointer-Arrays alloziert:
Code:
  int** newarr[2];

  newarr[0] = (int**) calloc(sizeof(one)/sizeof(one[0]), sizeof(newarr[0]));
  newarr[1] = (int**) calloc(sizeof(two)/sizeof(two[0]), sizeof(newarr[1]));

  for (int k = 0; k < 2; ++k) {
    newarr[0][k] = one[k];
    newarr[1][k] = two[k];
  }
  
  printf("%d\n", newarr[0][1][4]);
  printf("%d\n", newarr[1][1][6]);

  free(newarr[0]);
  free(newarr[1]);

Gruß
 
Zuletzt bearbeitet:
Jooo, dat sieht Jeil aus, soetwas brauche ich.

Habe zwar erstmal ne andere Lösung gefunden mit Vector,
ist aber nur eine einfache Struktur.

Vielen Dank, für das Jeile Teil
 
Kleiner Wicht hat gesagt.:
Jooo, dat sieht Jeil aus, soetwas brauche ich.

Habe zwar erstmal ne andere Lösung gefunden mit Vector,
ist aber nur eine einfache Struktur.

Vielen Dank, für das Jeile Teil
:-) Bitte, bitte. Nix zu danken. Wenn das deine Frage beantwortet hat, markier doch noch schnell das Thema als erledigt.

Gruß
 
Zurück