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

Fermé
mamok Messages postés 4 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 26 mai 2005 - 26 mai 2005 à 08:58
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 26 mai 2005 à 15:13
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

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 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
26 mai 2005 à 10:25
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 jeudi 26 mai 2005 Statut Membre Dernière intervention 26 mai 2005
26 mai 2005 à 12:20
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 jeudi 26 mai 2005 Statut Membre Dernière intervention 26 mai 2005
26 mai 2005 à 13:49
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 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
26 mai 2005 à 13:51
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 jeudi 26 mai 2005 Statut Membre Dernière intervention 26 mai 2005
26 mai 2005 à 14:47
Ca y est !
C'était juste une histoire d'indices

Merci encore
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
26 mai 2005 à 15:13
Alors clos le sujet :)
0