Pointer un charactère dans un tableau
Programath
Messages postés
8
Statut
Membre
-
Dalfab Messages postés 638 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 638 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essai de créer un tableau où lors de mon premier choix je veux remplir la première case de ce tableau avec la lettre A. Pourquoi ici ça ne fonctionne pas ? Merci d'avance
J'essai de créer un tableau où lors de mon premier choix je veux remplir la première case de ce tableau avec la lettre A. Pourquoi ici ça ne fonctionne pas ? Merci d'avance
#include <iostream>
#include <vector>
#include <cmath>
#include <string>
#include <cstdlib>
#include "Voyage.h"
using namespace std;
int main()
{
vector<string> Nom_villes={"A","B","C","D"};
int T[8];
T[0] = *Nom_villes(0);
cout << *T[0] << endl;
//ect...
Configuration: Windows / Chrome 96.0.4664.93
1 réponse
-
Salut,
Tu veux pointer. Les objets qui peuvent pointer s'appellent des pointeurs, et il n'y en a aucun dans ton code.
Ta ligneT[0] = *Nom_villes(0);
est une accumulation de non sens. Tu utilises un objet comme si c'était une fonction, tu déréférences le résultat comme si c'était un pointeur et tu veux le stocker dans un entier alors il y a surtout des strings!
Tu sembles vouloir que T soit un tableau de pointeur sur des strings, déclare le comme tel, ça marchera mieux.std::vector<std::string> Nom_villes{"A","B","C","D"}; std::string* T[8]; // T est un tableau de 8 pointeurs sur des strings T[0] = &Nom_villes[0]; // T[0] prend l'adresse de la première ville. std::cout << *T[0] << std::endl;Maintenant pourquoi vouloir pointer ? En C++ on doit éviter les pointeurs, et en plus il y a un gros risque à vouloir pointer des données qui sont dans unstd::vector<>
(unstd::vector<>
ça passe son temps à réorganiser ses éléments.)