Zeile aus Array lesen
-
Hallo Leute!
Da ich Anfänger bin, fällt es euch bestimmt leicht mir zu helfen. Ich will halt eine Zeile aus einem Feld auslesen. Also vom Sinngehalt etwa so:
DI[8]=RAM[a][8];
nur so gehts ja nicht.
Danke für eure Hinweise!
-
in deinem Beispiel selektierst du die Zeile a und in dieser das neunte Element.
Die ite Zeile bekommst du mitDI=RAM[i-1]
-
damit komme ich noch nicht ganz klar. ich habe das so ausprobiert wie es curry-king schrieb, aber da zeigt es nur Fehler an.
ich schreibe mal die Deklarationen am Anfang des Programmes hin:
int RAM[12][8]={
{4,8,5,2,5,4,8,9},
{10,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},};int DI[8];
und jetzt will ich die erste Zeile von RAM in DI schreiben. Wieso kann ich da das [a] weglassen?
-
int i; for(i=0; i<7; i++) DI[i]=RAM[a][i];
arrays gibts in c als datentyp eigentlich garnicht. die werden mit zeigern nachgebildet. die deklaration
int DI[8];
ist eigentlich
int *DI;
wobei DI beim programmstart automatisch mit einem zeiger initialisiert wird, der auf einen speicherbereich mit acht aufeinanderfolgenden int's zeigt.
klingt kompliziert. ist es auch. das hast du davon, daß du unbedingt c lernen willst
-
Konfusius schrieb:
int i; for(i=0; i<7; i++) DI[i]=RAM[a][i];
Du meintest wohl
for(i=0; i<8; i++) DI[i]=RAM[a][i];
-
Konfusius schrieb:
arrays gibts in c als datentyp eigentlich garnicht. die werden mit zeigern nachgebildet. die deklaration
int DI[8];
ist eigentlich
int *DI;
wobei DI beim programmstart automatisch mit einem zeiger initialisiert wird, der auf einen speicherbereich mit acht aufeinanderfolgenden int's zeigt.
klingt kompliziert. ist es auch. das hast du davon, daß du unbedingt c lernen willst
So kompliziert, dass du es vielleicht auch noch einmal nachlesen solltest:
http://www.eskimo.com/~scs/C-faq/q6.2.html
-
es hat alles geklappt. danke euch allen.
:xmas1: