Forum: PC-Programmierung Frage zu C und Array


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin M. (ats3788)


Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe da eine Frage kann man das folgende Zwei Dimensionale 
Array einfacher initialisieren
uint32_t Patter1[9] = { 0,1,2,3,4,5,6,7,8 };

uint32_t Patter2[9] = { 9,10,11,12,13,14,15,16,17 };
uint32_t Patter3[9] = { 18,19,20,21,22,23,24,25,26 };
uint32_t Muster[3][9];

int main()
{
    for (int i = 0; i < 9 * 1; i++)
        Muster[0][i] = Patter1[i];

    for (int i = 0; i < 9; i++)
        Muster[1][i]  = Patter2[i];

    for (int i = 0; i < 9; i++)
        Muster[2][i]  = Patter3[i];

    for (int i = 0; i < 3; i++) {
    
        for (int j = 0; j < 9; j++)
            std::cout << Muster[i][j];
        std::cout << "|\n";
    }


von ganz einfach (Gast)


Bewertung
0 lesenswert
nicht lesenswert
$ cat a.c
#include <stdio.h>
#include <stdint.h>

uint32_t foo[][3] = {
  { 0, 1, 2 },
  { 3, 4, 5 },
  { 6, 7, 8 }
};

int main(void) {
  printf("%d%d\n", foo[1][1], foo[0][2]);
}
$ ./a
42
$ 

von mh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
int MusterX[3][9] = {
    { 0,1,2,3,4,5,6,7,8 },
    { 9,10,11,12,13,14,15,16,17 },
    { 18,19,20,21,22,23,24,25,26 }
};

int MusterY[3][9] = {
     0,1,2,3,4,5,6,7,8 ,
     9,10,11,12,13,14,15,16,17 ,
     18,19,20,21,22,23,24,25,26 
};

Beitrag #6319101 wurde vom Autor gelöscht.
von Jack V. (jackv)


Bewertung
0 lesenswert
nicht lesenswert
Martin M. schrieb:
> Hallo, ich habe da eine Frage: Kann man das folgende zweidimensionale
> Array einfacher initialisieren?

FTFY

von Heinz B. (Firma: Privat) (hbrill)


Bewertung
0 lesenswert
nicht lesenswert
Ich kann zwar kein C oder C++, aber von der
allgemeinen Programmierlogik her braucht es doch nur
1 Schleife und 1 Array :
uint32_t Muster[3][9];
int main()
{
for (int i = 0; i < 9; i++)
        Muster[0][i] = i;
        Muster[1][i] = i + 9;
        Muster[2][i] = i + 18;

Wobei ich davon ausgehe, daß bei C als erstes die Dimension
und als zweites das Element kommt. Andernfalls kann man es ja
auch umdrehen.

Oder muß bei C das Array vorher initialisiert sein ?

: Bearbeitet durch User
von Martin M. (ats3788)


Bewertung
0 lesenswert
nicht lesenswert
mh schrieb:
>
> int MusterX[3][9] = {
>     { 0,1,2,3,4,5,6,7,8 },
>     { 9,10,11,12,13,14,15,16,17 },
>     { 18,19,20,21,22,23,24,25,26 }
> };
> 
> int MusterY[3][9] = {
>      0,1,2,3,4,5,6,7,8 ,
>      9,10,11,12,13,14,15,16,17 ,
>      18,19,20,21,22,23,24,25,26
> };
> 

Danke mit MusterX so habe ich es gemacht. Vielen Dank schöne Woche .)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.