C - Array - Verständnisfrage

Gast #2076184
Lesenswert?

Hallo,
ich hab da eine grundsätzliche Frage ...
Ich möchte beispielsweise der Wert 0x3E in ein Array schreiben, welches 
[128]x[64] groß ist.
Ich habs mal versucht unten dazustellen ...

Gibt es eine vereinfachte Syntax die man da anwenden kann?

array[y8..y1][x1] = 0x3E; <-- gibts sowas ähnliches?

Sicherlich eine dumme Frage, aber Google hat mir auch nicht weiter 
geholfen =(


      x0   x1   x2   x3   x4   x5   x6   . . .
     ________________________________
    |    |    |    |    |    |    |    |
y0  |    |    |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y1  |    | 0  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y2  |    | 1  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y3  |    | 1  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y4  |    | 1  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y5  |    | 1  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y6  |    | 1  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y7  |    | 0  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
    |    |    |    |    |    |    |    |
y8  |    | 0  |    |    |    |    |    |
    |____|____|____|____|____|____|____|
.
.
.

Ich danke für Anworten =)
Gast #2076189
Lesenswert?

??? schrieb:
> ich hab da eine grundsätzliche Frage ...
> Ich möchte beispielsweise der Wert 0x3E in ein Array schreiben, welches
> [128]x[64] groß ist.

Solche Arrays gibt es in C garnicht.
Was du hast sind 128 Arrays, die jeweils 64 Einträge haben...

> Gibt es eine vereinfachte Syntax die man da anwenden kann?
>
> array[y8..y1][x1] = 0x3E; <-- gibts sowas ähnliches?

for (int y=y8; y<y1; ++y) array[y][x1]=0x3E;
Gast #2076192
Lesenswert?

>Gibt es eine vereinfachte Syntax die man da anwenden kann?

>array[y8..y1][x1] = 0x3E; <-- gibts sowas ähnliches?


Klar.
1
for (y = y8; y <= y1; y++) array[y][x1] = 0x3E;

Schau Dir in einem C-Buch Deiner Wahl an, wie arrays im Speicher 
angelegt werden.
Gast #2076224
Lesenswert?

>Solche Arrays gibt es in C garnicht.

Das ist leider falsch. Es gibt mehrdimensionale Arrays in C.

>Was du hast sind 128 Arrays, die jeweils 64 Einträge haben...

Man kann ein mehrdimensionales Array array[128][64] ganz richtig als 
array von arrays betrachten (Pascal-Ausdrucksweise) aber eben auch als 
mehrdimensionales array. Aber es besteht keine Notwendigkeit zu 
ersterem, weil es mehrdimensionale Arrays "nicht gibt".

Der Satz suggeriert ausserdem das ein mehrdimensionales array in C durch 
mehrere eindimensionale, voneinander durch verschiedene Namen 
unterschiedene Objekte "emuliert" werden muss. Das ist nicht so.
Gast #2076399
Lesenswert?

Qwertz schrieb:
>>Was du hast sind 128 Arrays, die jeweils 64 Einträge haben...
>
> Man kann ein mehrdimensionales Array array[128][64] ganz richtig als
> array von arrays betrachten (Pascal-Ausdrucksweise)

Das is auch das, was sie in C sind.

> Der Satz suggeriert ausserdem das ein mehrdimensionales array in C durch
> mehrere eindimensionale, voneinander durch verschiedene Namen
> unterschiedene Objekte "emuliert" werden muss. Das ist nicht so.

Wo suggeriert es unterschiedliche Namen? Ein mehrdimensionales Array 
kann in C auf zwei Arten emuliert werden: Über ein Array aus Arrays oder 
über ein Array aus Zeigern.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren