C++ - tab1[] = tab2[]
smellems
-
smellems -
smellems -
bonjour
question de c++
si j'ai 2 tableau de taille égal est-ce que je peux par une cimple affectation les rendre =???
int x[4] = {1,2,3,4}
int y[4] = {5,6,7,8}
x = y //mais ça marche pas...
merci de votre aide
question de c++
si j'ai 2 tableau de taille égal est-ce que je peux par une cimple affectation les rendre =???
int x[4] = {1,2,3,4}
int y[4] = {5,6,7,8}
x = y //mais ça marche pas...
merci de votre aide
3 réponses
-
Non je crois pas que ça marche. Tu devrais le faire avec une boucle.
for(i=0; i<=3; i++) //pour affecter le contenu de x à y
x[i]=x[i];
i<=3 dans le cas ou il n'y a que 4 éléments, comme dans ton exemple. Sinon il faut adapter à la taille du tableau.
a+ -
Non c'est faut car tu fais une copie de pointeur (x désigne l'adresse du début du premier tableau et y celle du second).
Puisque tu fais du c++ tu devrais plutôt utiliser la class std::vector, qui te permettra de faire une copie directement avec un = :
#include <vector> #include <iostream> void show_vector(const vector<int> & v){ std::cout << "["; for(std::size_t i;i<v.size;++i){ std::cout << v[i] << " "; } std::cout << "]" << std::endl; } int main( ){ std::vector<int> x,y; //premier vecteur x.push_back(1); x.push_back(2); x.push_back(3); x.push_back(4); //deuxième vecteur y.push_back(5); y.push_back(6); y.push_back(7); y.push_back(8); //affichage std::cout << "Avant :"<<std::endl; show_vector(x); show_vector(y); //affectation y = x; //affichage std::cout << "Après :"<<std::endl; show_vector(x); show_vector(y); return 0; }
Bonne chance -