“Erreur: demande de membre ‘taille’ dans ‘a’, qui est du type pointeur”

Alors, je pensais que j’essayais de faire quelque chose de simple, mais apparemment pas …

J’ai écrit cette fonction pour pouvoir l’étendre plus tard et avoir un moyen rapide de donner à l’utilisateur un menu si nécessaire en accédant au menu(myssortingngs) :

 int menu(ssortingng a[]) { int choice(0); cout << "Make a selection" << endl; for(int i=0; i<a.size(); i++) { cout << i << ") " << a[i] <> choice; cout << endl; return choice; } 

Mais pour une raison quelconque, je reçois:

 main.cpp: In function 'int menu(std::ssortingng*)': main.cpp:38:12: error: request for member 'size' in 'a', which is of pointer type 'std::ssortingng* {aka std::basic_ssortingng*}' (maybe you meant to use '->' ?) int n = a.size(); 

quand j’essaye de comstackr. Quelqu’un pourrait-il traduire cette erreur pour moi et expliquer ce que c’est -> , merci.

Vous passez un tableau de ssortingngs et essayez d’appeler size() sur le tableau. Les tableaux dégénèrent en pointeurs lorsqu’ils sont transmis à une fonction, ce qui explique votre erreur.

L’opérateur -> , ou “opérateur de flèche” (nom que j’utilise), est simplement un raccourci pour (*obj).func() . Ceci est utile si vous avez un pointeur sur un object de classe. Exemple:

 ssortingng *s = &someotherssortingng; s->size(); //instead of (*s).size(), saves keystrokes