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

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