Unix C++

Résolu
narsise -  
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
je vous remercie tout le monde d'avance pour l'aide.
j'ai un code avec C++ sur unix
et je rencontre l'erreur: erreur de segmentation
mon code:

switch(tab[i][j].x)
{
case 0:
{
if(tab[i][j].y==0 || tab[i][j].y==(col-1))
{
core_L[i][j]->initiator_socket.bind(NOD2[i][j]->T_local->target_socket);
cout<<"core_L["<<i<<j<<"]-->nod2["<<i<<j<<"]-->T_Local"<<endl;
NOD2[i][j]->ARB_L->initiator_socket.bind(slave_L[i][j]->target_socket);
cout<<"nod2["<<i<<j<<"]arb_L-->slave_L["<<i<<j<<"]"<<endl;

// NOD2[i][j]->ARB_S->initiator_socket.bind(NOD4[i+1][j]->T_N->target_socket);
// NOD4[i+1][j]->ARB_N->initiator_socket.bind(NOD2[i][j]->T_S->target_socket);
// cout<<"nod2-->S["<<i<<j<<"]nod4-->N["<<i<<j+1<<"]"<<endl;</gras>

}

}
}
l'erreur s'arrive lorsque j'ajout les lignes souligner

1 réponse

swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
Question con : i et j sont initialisés ?
0
narsise
 
oui sont initialisés
0
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
a mon avis, l'indice i+1 déborde du tableau... Tu as un moyen de vérifier ?
0
narsise
 
j'ai pas compris?
0
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
// NOD2[i][j]->ARB_S->initiator_socket.bind(NOD4[i+1][j]->T_N->target_socket);  
// NOD4[i+1][j]->ARB_N->initiator_socket.bind(NOD2[i][j]->T_S->target_socket); 


Tu as un indice [i+1] dans ces 2 lignes. Est-ce que tu ne débordes pas de la longueur du tableau ?
Par exemple, un tableau de 10 cases (de 0 à 9). Si i=9, alors i+1=10, donc erreur de segmentation car tu dépasse du tableau.
0
narsise
 
non j'ai vérifier cette truc
0