Globales Array mit eingelesener Größe

Dorschty

Erfahrenes Mitglied
Hallo,

ist es möglich in C++ ein globales, zweidimensionales oder zumindest ein zweidimensionales Array anzulegen, das in jeder Funktion sichtbar ist, dessen Größe aber durch eine Eingabe des Users bestimmt wird?
Ich hoffe das war halbwegs verständlich ausgedrückt!? Wenn nicht einfach genauer nachfragen und ich versuch es nochmal zu erklären! ;)
Gruß Dorschty
 
probiers hiermit:

C:
#include <iostream>
using namespace std;

int dimension;
int** a;

int main() {
	cout << "Enter dimension: ";
	cin >> dimension;
	a = new int*[dimension];
	for (int i = 0; i < dimension; i++)
		a[i] = new int[dimension];

	for (int i = 0; i < dimension; i++)
		for (int j = 0; j < dimension; j++)
			a[i][j] = 0;

	a[0][5] = 5;

	cout << a[0][5] << endl;
	system("pause");
}
 
probiers hiermit:

C:
#include <iostream>
using namespace std;

int dimension;
int** a;

int main() {
	cout << "Enter dimension: ";
	cin >> dimension;
	a = new int*[dimension];
	for (int i = 0; i < dimension; i++)
		a[i] = new int[dimension];

	for (int i = 0; i < dimension; i++)
		for (int j = 0; j < dimension; j++)
			a[i][j] = 0;

	a[0][5] = 5;

	cout << a[0][5] << endl;
	system("pause");
}

@Proko: Was bedeutet denn

int** a

in deinem Code? Bedeutet das einfach Zeiger?
 
int** ist ein zeiger auf einen zeiger (zwei dimensionales array wo man mit a[][] zugreifen will)

mit int* kann nur ein eindimensionales feld angelegt werden wo nur mit a[] zugegriffen werden kann (soweit ich des jetz noch in erinnerung habe)

natürlich kann man auch mit einem eindimensionalen feld mehrere dimensionen abbilden

ein feld a mit 9x9 hat 81 elemente
und wenn du jetz auf das element a[ i ][ j ] zugreifen willst ist es wie a[ i * zeilenlänge + j ]

also bei a[ 3 ][ 2 ] = a[ 3 * 9 + 2 ]
 
Zurück