C++: pb mémoire avec affectation de vecteur
Bonjour,
J'ai un souci lors de l'éxecution de mon main.
ERREUR: unhandled exception "nomduprojet":0xC00000.. Access violation
J'ai une erreur lors de l'éxecution de la ligne:
où simulation_taux renvoie un vecteur et thematrice est un vecteur aussi
Je croyais que l'on pouvait dire Vecteur1=vecteur2?Non?
Merci d'avance à ceux qui pourront m'aiguiller vers la solution.
Morgan
J'ai un souci lors de l'éxecution de mon main.
ERREUR: unhandled exception "nomduprojet":0xC00000.. Access violation
J'ai une erreur lors de l'éxecution de la ligne:
theMatrice = simulation_taux(Maturity,FloatingFrequency,NbOfPaths);
où simulation_taux renvoie un vecteur et thematrice est un vecteur aussi
Je croyais que l'on pouvait dire Vecteur1=vecteur2?Non?
Merci d'avance à ceux qui pourront m'aiguiller vers la solution.
Morgan
7 réponses
-
http://www.cppreference.com/cppvector/all.html
Cette page devrait t'aguiller.
A priori il faut faire une assignation avec les iterateur, genre
TheMAtrice.assign(simulation_taux(Maturity,FloatingFrequency,NbOfPaths).begin(), simulation_taux(Maturity,FloatingFrequency,NbOfPaths).end()); -
Si tu testes ce programme tu t'apercevra que tu peux faire vector1=vector2. Ton problème doit venir d'ailleurs (objet de référence détruit avant la copie ?)
#include <vector> #include <iostream> using namespace std; int main(){ vector<int> v; v.push_back(2); v.push_back(3); for(unsigned int i=0;i<v.size();i++) cout<<v[i]<<" "; cout<<endl; vector<int> w; w=v; for(unsigned int i=0;i<v.size();i++) cout<<w[i]<<" "; cout<<endl; return 0; }
Por voir exactement où ça plante, si tu es sous linux, compile ton programme avec l'option -g et lance le debugger:$ g++ -W -Wall -g plop.cpp -o plop.exe $ gdb plop.exe gdb> r segfault gdb> bt
Comme ça tu sauras exactement à quel endroit ça plante.
Une solution pourrait être de passer par des pointeurs dans ton cas.
Bonne chance ;o) -
Bon j'ai essayé l'histoire des assign et cela ne marche pas
toujours la meme erreur!!
mais je persévère
et je n'ai pas linux -
Bon j'ai essayé l'histoire des assign et cela ne marche pas
toujours la meme erreur!!
mais je persévère
et je n'ai pas linux -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Juste par curiosité essaie le constructeur par copie
vector<...> theMatrice = vector<...>(simulation_taux(Maturity,FloatingFrequency,NbOfPaths)); -
Ca y est !
C'était juste une histoire d'indices
Merci encore -
Alors clos le sujet :)