Forum: PC-Programmierung Vertehe den Code nicht


von Gerd (Gast)


Lesenswert?

Verstehe den Code nicht. Wer kann mir helfen

typedef struct
{
   Uint uifile;
   Uint *puiel;
} SBlock;



Uint auiel[] =
{
   1,
   2,
   3,
   4,
   5,
   6,

};

SBlock asBlock[] =
{
   {
      iAi, auiel
   },
   {
      iProfFDi, auiel
   }
};

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das erste ist eine Typdeklaration, die eine Struktur mit dem Typ-Namen 
SBlock deklariert.

Das zweite ist ein initialisiertes Array vom Typ Uint, das Array enthält 
sechs Elemente.

Das dritte ist ein initialisiertes Array aus Strukturen vom eingangs 
deklarierten Typ-Namen SBlock, dieses Array enthält zwei Elemente.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

typedef struct { Uint uifile; Uint *puiel; } SBlock;

SBlock ist ein anderer Name (typedef) für eine Struktur mit den 
Strukturelementen uifile vom Typ Uint und puiel welches ein Zeiger (*) 
auf den Typ Uint ist.

Rechtsrum von Innen nach Aussen Spiralen

Uint auiel[]
Ein Array ([]) namens auiel mit Elementen vom Typ Uint.

=
{
   1,
   2,
   3,
   4,
   5,
   6,
};
ist die Initialisierung von sechs Elmenten dieses Arrays.

SBlock asBlock[]
Ein Array ([]) namens asBlock mit Elementen vom Typ SBlock.

= {
   {
      iAi, auiel
   },
   {
      iProfFDi, auiel
   }
};
ist die Initialisierung von zwei Elmenten dieses Arrays. Danach ist

asBlock[0].uifile == iAi
asBlock[0].puiel  == auiel
asBlock[1].uifile == iProfFDi
asBlock[1].puiel  == auiel

von Gerd (Gast)


Lesenswert?

Aber ist das nicht ein Pointer?Uint *puiel;

von Gerd (Gast)


Lesenswert?

Dann schreibe ich an die Stelle asBlock[0]. puiChannel   das Array oder 
wie?

von Gerd (Gast)


Lesenswert?

Ich würde gerne auiel[] durchsuchen nach einen Eintrag und den Index 
dann in zurück liefern? geht das so.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Du sprichst in Rätseln.

> Aber ist das nicht ein Pointer?Uint *puiel;

Ja, siehe oben "puiel welches ein Zeiger (*) auf den Typ Uint ist."

> Dann schreibe ich an die Stelle asBlock[0].puiChannel das Array oder
> wie?

DAS Array gibt es nicht. Du hast zwei Arrays: asBlock und auiel.

asBlock[0].puiChannel gibt es nicht. Die Struktur mit dem 
selbstdefinierten Namen SBlock hat nur die Elemente uifile und puiel.

> Ich würde gerne auiel[] durchsuchen nach einen Eintrag und den Index
> dann in zurück liefern?

in WAS?

> geht das so.

So WIE?

An sich ist das Suchen in auiel[] Pippifax

gesuchte_zahl = 3;
maxindex_von_auiel = 5;
gefundener_index = -1; // nicht gefunden

for (index = 0; index <= maxindex_von_auiel; index++)
{
  if (gesuchte_zahl == auiel[index])
  {
    gefundener_index = index;
    break;
  }
}

In gefundener_index steht der niedrigeste Index der gesuchten Zahl im 
Array (interessant, wenn die Zahl mehrfach in auiel steht) oder eine -1, 
wenn die Zahl überhaupt nicht im Array auiel steht.

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.