Erreur de segmentation
Résolu
youssef2007
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
youssef2007 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
youssef2007 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici le probleme que je rencontre lors d'un test d'affichage d'un tableau de deux dimensions :
mon petit programme C :
#include<stdio.h>
main()
{
int a[2][2];int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
a[i][j] = 1;
}
affich(a);
}
affich(int** a)
{
printf("%d",*(*(a+1)+1)); //affich just de la case a[1][1]
}
la compilation a bien marché mais aprés exécution il me retourne
" erreur de segmentation "
j'utlise fedora 7 et j ai besoins de votre aide pour continuer mon tp ,
merci d'avance pour tt aide
voici le probleme que je rencontre lors d'un test d'affichage d'un tableau de deux dimensions :
mon petit programme C :
#include<stdio.h>
main()
{
int a[2][2];int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
a[i][j] = 1;
}
affich(a);
}
affich(int** a)
{
printf("%d",*(*(a+1)+1)); //affich just de la case a[1][1]
}
la compilation a bien marché mais aprés exécution il me retourne
" erreur de segmentation "
j'utlise fedora 7 et j ai besoins de votre aide pour continuer mon tp ,
merci d'avance pour tt aide
A voir également:
- Erreur de segmentation
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
5 réponses
pourquoi tu melanges les ecritures tableau et pointeurs...
essaye comme ça
essaye comme ça
affich(int a[2][2]) { printf("%d\n",a[1][1]); //affich just de la case a[1][1] }
j'ai rien compris????????????
essayer d'expliquer bien ton problème et surtout ta fonction affich(int** a) de quoi il s'agit.
essayer d'expliquer bien ton problème et surtout ta fonction affich(int** a) de quoi il s'agit.
bonjours,
d'abord bonne et joyeuse année 2008 pour tous ,
merci les amis pour vos réponses
pour mype : votre solution a bien marché , mais à condition que je donne au tableau les meme dimensions que dans la fonction appelante .exemple ( si on fait:
le resultat est n'importe quoi : -10740932 !!!!
)
cé pour qoi que je essayé d'utiliser les pointeurs car la fonction affich() sera appelé plusieurs fois ds mon programme et avec des tableaux de dimensions differentes,
@kiki.boss3 affich() sert à afficher le contenu du tableau a , et puisqu'il s'agit d'un test j'ai choisi d'afficher seulement la case a[1][1]
voila , je croi mon probleme est mieux expliqué mnt @+
d'abord bonne et joyeuse année 2008 pour tous ,
merci les amis pour vos réponses
pour mype : votre solution a bien marché , mais à condition que je donne au tableau les meme dimensions que dans la fonction appelante .exemple ( si on fait:
affich(int a[3][3]) { printf("%d\n",a[1][1]); //affich just de la case a[1][1] }
le resultat est n'importe quoi : -10740932 !!!!
)
cé pour qoi que je essayé d'utiliser les pointeurs car la fonction affich() sera appelé plusieurs fois ds mon programme et avec des tableaux de dimensions differentes,
@kiki.boss3 affich() sert à afficher le contenu du tableau a , et puisqu'il s'agit d'un test j'ai choisi d'afficher seulement la case a[1][1]
voila , je croi mon probleme est mieux expliqué mnt @+
dans ce cas utilise que des pointeurs
#include<stdio.h> void affich(int **a) { printf("%d",a[1][1]); //affich just de la case a[1][1] } int main() { int **a;int i,j; a=(int **) malloc(2*sizeof(int *)); for(i=0;i<2;i++) a[i]=(int *) malloc(2*sizeof(int)); for(i=0;i<2;i++) { for(j=0;j<2;j++) a[i][j] = 1; } affich(a); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question