Zugriff auf Arrays in einem struct mittels pointer

OP #2943888
Lesenswert?
• ▲
▼
Hallo,
als Anfänger in C++ versuche ich gerade zu verstehen, wie man
mittels Pointer auf Arrays in einem struct zugreifen kann. Leider kann
ich dazu jedoch nichts eindeutiges finden, kann jemand bitte einen
Tipp geben?


Folgendes ist klar und funktioniert auch, gewollt ist direkter Zugriff
über die Adresse auf x un Ausgabe des Inhaltes

#include <iostream>


int main()
{

  int x;
  int *p; // Pointer p erzeugen um auf Variable des Typs int zuzugreifen

  p = &x; // Pointer p auf Adresse von x setzen

  *p = 42; // x mittels Derefenzierer * über p mit 42 beschreiben.


  std::cout << x << std:endl; // Inhalt x zur Konsole ausgeben

return 0;

}


--------------------------------------------------

Was nun leider nicht funktioniert ist folgendes:


#include <iostream>


struct xy_matrix
{
  int array_x[5];
  int array_y[5];
};


int main()
{

  xy_matrix *p; // Pointer p des Typs xy_matrix erzeugen

  p = &array_x; // hier hätte ich gern die Adresse des Elements array_x
// geholt, klappt aber nicht :(((

usw usw.


Wo ist der dicke Denkfehler?
Es hilft auch nichts, das struct innerhalb von main() zu schreiben oder
&array_x[0] zu verwenden.


Frage:
Wie komme ich an die Adresse von array_x und array_y und wie beschreibe
ich dann diese Arrays?

Schon jetzt, vielen Dank für eure Hilfe..

Viele Grüsse
Peter
Gast #2943920
Lesenswert?
• ▲
▼
1
struct xy_matrix // hier wird der Typ definiert
2
{
3
  int array_x[5];
4
  int array_y[5];
5
};
6

7
struct xy_matrix meine_matrix; // eine Variable vom Typ xy_matrix definieren
8

9
int main()
10
{
11
  xy_matrix *p;      // Pointer auf xy_matrix
12
  p = &meine_matrix; // Pointer zeigt auf meine_matrix
13
  
14
  int* p2;                    // Pointer auf Integer
15
  p2 = meine_matrix.array_y;  // Pointer zeigt auf erstes Element aus array_y
16
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.