# Passe un tableau de structure a une fonction en C

**URL:** <https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062 "2016-02-21T00:53:41Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![lrgtk](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/67e7ee/32.png) [@lrgtk](https://www.debian-fr.org/u/lrgtk)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/1 "2016-02-21T00:53:41Z")

</div>

bonjour

j’ai une erreur de segmentation en fin de programme et mon tableau c’est pas ça ?

```auto
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>

	struct TRUC
	{
		int truca; 
		int trucb; 
	};

int main(int argc,char **argv)
{
	int NElement = 100, taille_S_TRUC, Nouv_dim, i;

	struct TRUC *T_S_test = NULL;
	struct TRUC V_S_test;

	taille_S_TRUC = sizeof(struct TRUC); // connaitre la taille de la structure GPX
	Nouv_dim = (NElement + 1) * taille_S_GPX;
	test = (struct TRUC *) malloc(Nouv_dim); // allocation mémoire  

	V_S_test.truca = 2;
	V_S_test.trucb = 0;
	T_S_test[0] = V_S_test;
	V_S_test.truca = 8;
	V_S_test.trucb = 23;
	T_S_test[1] = V_S_test;

i =0;
		printf("i - truca:%03d - trucb:%03d\n",T_S_test[i].truca ,T_S_test[i].trucb);
 i =1;
		printf("i - truca:%03d - trucb:%03d\n",T_S_test[i].truca ,T_S_test[i].trucb);
 i =99;
		printf("i - truca:%03d - trucb:%03d\n",T_S_test[i].truca ,T_S_test[i].trucb);

Ma_fonction(&test);
i =0;
		printf("i - truca:%03d - trucb:%03d\n",T_S_test[i].truca ,T_S_test[i].trucb);
 i =1;
		printf("i - truca:%03d - trucb:%03d\n",T_S_test[i].truca ,T_S_test[i].trucb);
 i =99;
		printf("i - truca:%03d - trucb:%03d\n",T_S_test[i].truca ,T_S_test[i].trucb);

printf("FIN\n");

}

Ma_fontion(struct TRUC **test)
{
 // parse un fichier texte, modifie les données du tableau jusqu'a l'indice 50
	les infos de mon fichier
	40 - 17
	18 - 587
	547 - 1200
	etc ...
}
```

[code]resultat :  
avant la Ma\_fonction  
0 - truca:2 - trucb:0   
1 - truca:8 - trucb:23  
99 - truca:0 - trucb:0

après Ma\_fonction  
0 - truca:40 - trucb:17  
element bien modifie et conforme au donnée du fichier texte, mais ce sont les données qui se trouver normalement à l’indice 50 et 0.  
1 - truca:-17584254 - trucb:-17584254 ici :017 ???  
99 - truca:0 - trucb:0 est la normal rien de changer  
FIN  
Erreur de segmentation[/code]

une idée, parce que moi 😮 ???

merci d’avnace.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/2 "2016-02-21T00:53:41Z")

</div>

J’ai pas vraiment la tête à me plonger dans ton code, mais tu peut le compiler avec l’option -g et le lancer avec gdb, ça te permettra de voir où exactement tu plante. Sinon lance-le avec valgrind qui pourras te dire pleins de choses sur la mémoire.

---

<div class="post-metadata">

**Author:** ![lrgtk](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/67e7ee/32.png) [@lrgtk](https://www.debian-fr.org/u/lrgtk)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/3 "2016-02-21T00:53:45Z")

</div>

a la fin de gdb:

```auto
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
```

pour la 1 ligne c’est erreur de segmentation de mon premier post enfin je crois  
et pour la 2 ligne ![:119](https://www.debian-fr.org/uploads/default/original/1X/0287f377b0e103e172422ffbbe8c639fd3e12c9e.gif "vertige") , ça serait ecrit en chinois ça serai pareil ???

---

<div class="post-metadata">

**Author:** ![lrgtk](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/67e7ee/32.png) [@lrgtk](https://www.debian-fr.org/u/lrgtk)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/4 "2016-02-21T00:53:45Z")

</div>

> [@MisterFreez](#):
>
> Sinon lance-le avec valgrind qui pourras te dire pleins de choses sur la mémoire.

pour sure, mais la encore, pour le debutant que je suis, c’est du chinois!!! ![:119](https://www.debian-fr.org/uploads/default/original/1X/0287f377b0e103e172422ffbbe8c639fd3e12c9e.gif "vertige") ![:013](https://www.debian-fr.org/uploads/default/original/1X/086709e9e4d48f0fa24e42243bbce857fc2be47f.gif "colere") ![:12](https://www.debian-fr.org/uploads/default/original/1X/5ab5476dc281287f8b7ad337242a19cb8485624d.gif "grincheux")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/5 "2016-02-21T00:53:46Z")

</div>

[quote=«&nbsp;lrgtk&nbsp;»]a la fin de gdb:

`
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
`[/quote]  
Tu as fait comment ?

```auto
gdb ./nom-du-programme
```

Puis tu as tapé r pour lancer le programme avec les éventuels paramètre ?

Après qu’il plante tape l (ou list) pour voir où dans ton code tu es arrivé.

Tu dois pouvoir facilement trouver des howto sur gdb assez simples.

[quote=«&nbsp;lrgtk&nbsp;»]pour la 1 ligne c’est erreur de segmentation de mon premier post enfin je crois  
et pour la 2 ligne ![:119](https://www.debian-fr.org/uploads/default/original/1X/0287f377b0e103e172422ffbbe8c639fd3e12c9e.gif "vertige") , ça serait ecrit en chinois ça serai pareil ???[/quote]  
Je ne peux pas t’aider je ne connais pas assez valgrind pour te le décrire de tête.

---

<div class="post-metadata">

**Author:** ![lrgtk](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/67e7ee/32.png) [@lrgtk](https://www.debian-fr.org/u/lrgtk)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/6 "2016-02-21T00:53:49Z")

</div>

De mal en pis

un simple programme

```auto
int i = 0;
while(i<10)
{
 printf("compteur:%d\n",i);
i++;
}
```

ne fonctionne pas

c’est quoi ce bordel???

---

<div class="post-metadata">

**Author:** ![bobzer](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/41988e/32.png) [@bobzer](https://www.debian-fr.org/u/bobzer)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/7 "2016-02-21T00:53:49Z")

</div>

fonctionne pas ça veut dire quoi ?

---

<div class="post-metadata">

**Author:** ![lrgtk](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/67e7ee/32.png) [@lrgtk](https://www.debian-fr.org/u/lrgtk)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/8 "2016-02-21T00:53:49Z")

</div>

je devrai avoir

```auto
compteur:0
compteur:1
compteur:2
etc...
```

j’ai rien !!!

apres prompt\>./monprog

---

<div class="post-metadata">

**Author:** ![lrgtk](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/67e7ee/32.png) [@lrgtk](https://www.debian-fr.org/u/lrgtk)\
**Post date:** [Février 21, 2016, 12:53 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/9 "2016-02-21T00:53:49Z")

</div>

la boucle fonction un pca mais pas sur pcB ?  
j’ai commencer a developper sur le pcB c’est la premier fois que j’ai ce pb  
je viens de reinstaller debian toujours, le pb est encore la

des programme comme terminal, openoffice, gedit, moniteur systeme = fonctionne correctement de ce que je peut en juger

un code avec une simple boucle ne fonctionne pas ???  
le prompt reste vide  
obliger de faire un ctrl c pour le recuperer!!!

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 21, 2016, 12:55 UTC](https://www.debian-fr.org/t/passe-un-tableau-de-structure-a-une-fonction-en-c/31062/10 "2016-02-21T00:55:21Z")

</div>

salut  
donne voir le code complet. parce que juste ta boucle sa peux pas tourner 🙂
