Mehrdimensionales Array allokieren

excelite

Mitglied
Hallo zusammen,
ich habe ein Problem bei der Allokierung eines mehrdimensionalen Arrays.
Zur Erläuterung ein kurzer Codeschnipsel:

bool *ret = bool new[8][8];

anschließend möchte ich gerne den Pointer auf das erste Element zurückgeben. Leider ist die Allokierung fehlerhaft. Habe diverse Möglichkeiten durchprobiert. Alles ohne Erfolg. Im Forum habe ich eine Version gefunden. Diese sieht wie folgt aus:

bool **ret = (bool**) (new bool[8*8]);

Nun habe ich aber das Problem, dass ich auf keine der Elemente zugreifen kann. Es kommt bei ret[0][3] = true; immer eine Zugriffsverletzung. Ich kann mir das nur durch Fehlerhafte Allokierung des Feldes erklären. Wie kann ich hier Abhilfe schaffen. Ich möchte nachher dann einfach per ret[0][3] = true; die einzelnen Elemente verändern können. Wie geht das? Leider bin ich nicht ganz fit bei der Nutzung von Pointern auf Pointer.

Danke für die Hilfe,

Gruß Björn
 
moin


Erstell mal er ein eindimensionales Array und dann zu jedem Element wieder ein Array.
In C würde das so aussehen:
Code:
int **array2d(int x, int y)
{
	int **array;

	int i=0;
	array=(int **)malloc(x*sizeof(*array));
	for(i=0; i<x; i++)
		array[i]=(int *)malloc(y*sizeof(*array));

	return array;
}


mfg
umbrasaxum
 
Zurück