C++: pb mémoire avec affectation de vecteur

mamok Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
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:
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

Nashouille
 
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());
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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)
0
mamok Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
mamok Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Juste par curiosité essaie le constructeur par copie
vector<...> theMatrice = vector<...>(simulation_taux(Maturity,FloatingFrequency,NbOfPaths));
0
mamok Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Ca y est !
C'était juste une histoire d'indices

Merci encore
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Alors clos le sujet :)
0