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());
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 ?)
Por voir exactement où ça plante, si tu es sous linux, compile ton programme avec l'option -g et lance le debugger:
Comme ça tu sauras exactement à quel endroit ça plante.
Une solution pourrait être de passer par des pointeurs dans ton cas.
Bonne chance ;o)
#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
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
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));
vector<...> theMatrice = vector<...>(simulation_taux(Maturity,FloatingFrequency,NbOfPaths));