Forum: Compiler & IDEs Zweidimensionales Array mit festen Adressen


von Nichtswisser (Gast)


Lesenswert?

Hallo,

ich habe einen festen Speicherbereich und möchte diesen als Grundlage 
für ein zweidimensionales Array verwenden.

Zum Beispiel:

Array Adr0
0x0000     Adr0a
0x0001     Adr0b
0x0002     Adr0c
0x0003     Adr0d
0x0004     Adr0e

Array Adr1
0x0005     Adr1a
0x0006     Adr1b
0x0007     Adr1c
......     ....


Adr0, Adr1, etc. sind als Arrays bereits definiert und die Adressen 
bekannt.

Die Adresse 0x0002 könnte man also mit Adr0[2] ansprechen. Ich möchte 
sie aber mit Adr[0][2] ansprechen, d.h. die Bezeichner der Arrays (Adr0, 
Adr1,...) selbst sind nochmal in Arrays gefasst. Dies dient nur zur 
besseren Lesbarkeit des Codes.

Könnte ich also ein Array von Pointern auf die Arrays Adr0, Adr1 etc. 
anlegen, und dann die einzelnen Werte wie oben beschrieben adressieren?

Gibt es noch andere Lösungen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Dir geht es also darum, wie man von Hand zu Fuss bei gegebener 
Spalte/Zeile ein Element in einem zweidimensionalen Array indizieren 
kann.

Voraussetzung dafür ist, dass deine können als zweidimensionales Array 
abgelegt werden können/sind, d.h. sie müssen identische Elementanzahl 
pro Dimension haben.

Lies dich dazu vielleicht in die C FAQ ein, speziell Frage und Antwort 
2.11 und folgende.
http://www.dclc-faq.de/kap2.htm

Warum willst du das überhaupt machen?

Eine Alternative zum mehrdimensionalen Array zwecks "Zusammenhalten" der 
Daten im Quelltext, wäre z.B. eine umfassende Struktur in der Art:
1
struct {
2
   char Adr0[MAXDIM_0];
3
   char Adr0[MAXDIM_1];
4
};

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.