salut a tous,
estce que quelqu'un pourra me renseigner sur la signification de cette ecriture
std::complex<float> (*W)[M] = &Z[k][0];
sachant les declaration suivantes seulement:
Z[N][P][M];
et 0 <= k < N
merci de me repondre
salut a tous,
estce que quelqu'un pourra me renseigner sur la signification de cette ecriture
std::complex<float> (*W)[M] = &Z[k][0];
sachant les declaration suivantes seulement:
Z[N][P][M];
et 0 <= k < N
merci de me repondre
Salut,
Pour que l'on puisse te répondre il faudrait que tu sois plus précis sur le tableau Z. Quel est le type des objets stockés ?
voici le type mentionné
std::complex<float> Z[N][P][M];
Cette syntaxe un peu obscure permet en fait de déclarer un pointeur (ici W) sur un tableau de M objets de type std::complex<float>.std::complex<float> (*W)[M]
Puisque Z est un tableau de tableau de tableau de std::complex<float> alors Z[k][0] est un tableau de M std::complex<float> et &Z[k][0] est l'adresse d'un tableau de M std::complex<float>. Cette adresse peut donc être stockée dans W puisque W est un pointeur sur tableau de M std::complex<float>.&Z[k][0]
Mon explication n'est pas d'une grande clarté donc si tu as des questions n'hésite à m'en faire part.
C'est équivalent à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 typedef std::complex<float> Vecteur[M]; // défini le type Vecteur comme étant un tableau de M nombre complexes. Vecteur* W; // déclare W comme étant un pointeur vers un objet de type Vecteur W = &Z[k][0]; // fait pointer W vers le vecteur Z[k][0]
Partager