salut,

bonne année 2010!

pour commencer studieusement, voici une petite erreur que je n'arrive pas à résoudre:

il s'agit d'un exercice où il faut créer un programme qui fait office de carnet d'adresses, c'est très simple.

voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 
/* 
 * File:   main.cpp
 * Author: lolveley
 *
 * Created on 31 décembre 2009, 09:12
 */
 
#include <stdlib.h>
#include <iostream>
using namespace std;
 
class information{
public:
    string nom;
    string prenom;
    string adresse;
    string telephone;
 
    information();
    information(string nom,string prenom,string adresse,string telephone);
 
};
 
class carnet{
public:
    information valeurs[25][10];
    int indexNouvelleValeur[25];
    void add(information inf);
    carnet();
 
 
};
 
information::information(){
    nom="";
    prenom="";
    adresse="";
    telephone="";
 
 
}
 
information::information(string nom, string prenom, string adresse, string telephone){
 
    nom=nom;
    prenom=prenom;
    adresse=adresse;
    telephone=telephone;
 
 
}
 
 
 
void carnet::add(information inf){
 
    if ( (inf.nom[0]-65<0) || (inf.nom[0]-65>=26) )
        return;
    //nom commence par une majuscule
 
    if (indexNouvelleValeur[inf.nom[0]-65]>=10)
            return;
    //il reste de la place dans le carnet
 
    int lettre=inf.nom[0]-65;
    valeurs[lettre][indexNouvelleValeur[lettre]].adresse=inf.adresse;
    valeurs[lettre][indexNouvelleValeur[lettre]].nom=inf.nom;
    valeurs[lettre][indexNouvelleValeur[lettre]].prenom=inf.prenom;
    valeurs[lettre][indexNouvelleValeur[lettre]].telephone=inf.telephone;
    indexNouvelleValeur[lettre]++;
 
}
 
 
carnet::carnet(){
 
    for (int i=0;i<26;i++){
        indexNouvelleValeur[i]=0;
        for (int j=0;j<10;j++){
            valeurs[i][indexNouvelleValeur[i]].adresse="";
            valeurs[i][indexNouvelleValeur[i]].nom="";
            valeurs[i][indexNouvelleValeur[i]].prenom="";
            valeurs[i][indexNouvelleValeur[i]].telephone="";
 
 
        }
    }
 
}
 
 
 
 
 
 
/*
 * 
 */
int main(int argc, char** argv) {
 
    carnet a;
    /*information b();
    b.adresse="12_rue_des_roses";
    b.nom="String";
    b.prenom="jean";
    b.telephone="0387125696";
    */
    information b("String","jean","12_rue_des_roses","03873156963");
 
    a.add(b);
 
 
    return (EXIT_SUCCESS);
}
et voici l'erreur, dans netbeans:
elle s'affiche dans la console, à l'exécution (la compil marche bien):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
/Applications/NetBeans/NetBeans 6.7.1.app/Contents/Resources/NetBeans/dlight1/bin/nativeexecution/dorun.sh: line 51:  4329 Segmentation fault      /bin/sh "${PIDFILE}.sh"
Press [Enter] to close the terminal ...

merci,

olivier.