problème de compilation - C++ - Programmation
Marsh Posté le 25-08-2014 à 13:26:26
ce n'est pas une erreur de compilation si ton programme plante à l'exécution.
Tu dois probablement utiliser un index trop grand pour ton tableau àdeux dimensions.
Es-tu sur d'avoir bien redmiensionné mat et chaque mat[i] aussi ?
Edit : accessoirement, un vector<vector<>> pour une simple matrice, c'est pas top.
Edit2 : tu vas de 0 à lines dans tes deux boucles, tu es sr que ca ne devrait pas être columns pour l'un des deux ?
Marsh Posté le 25-08-2014 à 13:39:35
puisque j'utilise le même nombre de colonnes et de ligne, j'ai fait directement lines (avec lines=36) c'est pour cette raison j’utilise le même indice
Marsh Posté le 25-08-2014 à 13:45:15
tu a totalement raison c'est un problème de dimension car je fait debug, il me mentionne une erreur de size au niveau de mat.
mais je vois pas bien l'erreur car pour moi la déclaration que j'ai faite est logique.
chaque mat[i] est de dimension 36X1, donc je dois avoir une matrice mat de dimension 36x36!!non!!??
Marsh Posté le 25-08-2014 à 13:50:00
Montre-nous donc comment tu initialises tes matrices.
Edit : note que n'importe quel autre accès en dehors des limites des tableaux pourrait avoir le même effet (je pense à tes "t1[j], t2[i], mu_y1[j], mu_y2[i], segma_y1[j], segma_y2[i]" )
Marsh Posté le 25-08-2014 à 13:59:01
theshockwave a écrit : Montre-nous donc comment tu initialises tes matrices. |
dans mon programme j'utilise mes vecteurs et ma matrice comme variables globaux, donc je les déclare directement comme suit:
Code :
|
Est ce que j'ai raté quelque chose??
et pour les vecteurs je les récupère directement d'une sous fonction que j'ai deja programmé
Code :
|
et pour les segma_y et mu_y sont calculés en fonction de segma_t et mu_t comme suit:
Code :
|
Marsh Posté le 25-08-2014 à 14:05:23
Oui, comment ton vecteur sait-il quelle taille il doit faire ?
Par défaut, ton vecteur a une taille nulle. Tenter d'accéder à l'un de ses éléments via l'opérateur [] est une erreur. Tu dois le redimensionner, par exemple, comme ca :
Code :
|
Attention à tes autres vecteurs aussi (si tu les remplis avec des push_back, tout se passera bien)
(Edit : typo)
Marsh Posté le 25-08-2014 à 14:19:13
theshockwave a écrit : Oui, comment ton vecteur sait-il quelle taille il doit faire ?
|
Un GRAND MERCII theshockwave, le problème est résolu; en mettant
Code :
|
.
merci beaucoup.
Marsh Posté le 25-08-2014 à 12:09:25
Bonjour tous le monde,
voila j'ai un petit problème de compilation,
j'ai fait une fonction pour calculer une loi log normale,et j'appelle cette fonction dans mon programme principal.
lors de l'exécution il m'affiche une fenêtre en me disant que le programme à cesser de fonctionner.
mon erreur s'affiche à ce niveau:
les déclarations sont les suivantes:
je travaille avec des vecteurs et je veux récuperer le résultat dans une matrice de 36X36.
le soucis c'est que quand je fait une commande pour récupérer un vecteur 36X1 ça marche mais pas une matrice!!!
SVP pourriez vous m'aider et m'orienter vers l'erreur commise?!
Je programme sous code blocks.
Merci d'avance
---------------
etudoc