Article View: fr.comp.lang.c
Article #15343Re: Tableau: différence entre pile et tas
From: Pierre Maurette
Date: Thu, 29 Sep 2005 15:58
Date: Thu, 29 Sep 2005 15:58
60 lines
3385 bytes
3385 bytes
Yves ROMAN, le 29/09/2005, a �crit :
> <dab@acri-st.fr> a �crit dans le message de news:
> 1128006219.590857.313500@g47g2000cwa.googlegroups.com...
>> Du coup, je cale sur mon probl�me.
>>
>> J'alloue mes table dans mon main avec malloc.
>> Je passe mes tables en param�tre d'une fonction.
>> Je modifie la table distTable dans ma fonction.
>> Au retour de ma fonction, je re�oie:
>> segmentation fault (core dumped)
>> quand j'essaye de lire le contenu de la table modifi�e.
>>
>> J'ai pass� la journ�e dessus sans succ�s:
>> Si vous avez une id�e ou une suggestion, ne vous genez pas.
>> Voici mon code:
>> Le fichier main.c:
>>
>> #include <stdio.h>
>> #include <stdlib.h>
>>
>> # include "grid_point.h"
>>
>> int main(int argc, char* argv[]) {
>> t_grid_point** gridPointTable = NULL;
>
> Pour quoi un vecteur de pointeurs puisque tu n'utilise que gridPointTable[0]
> (mais c'est peut-�tre uniquement pour le programme de test)
>
>> t_sorted_grid_point** distTable = NULL;
>
> Ici, tu d�finis un vecteur de pointeurs. Mais tu vas allouer une matrice.
> D�finis plut�t
> t_sorted_grid_point* distTable = NULL;
>
>> int nbGridPoint = 0, inc, inc2;
>>
>> /* init data struct */
>> if (DEBUG != 0)
>> printf("Memory allocation\n");
>>
>> gridPointTable = malloc(NB_MAX_GRID_POINT*sizeof(t_grid_point *));
>>
>> if ((DEBUG != 0) & (gridPointTable == NULL))
>> printf("Error during allocate: gridPointTable\n");
>>
>> distTable =
>> malloc(NB_MAX_GRID_POINT*NB_NEIGHBOR*sizeof(t_sorted_grid_point));
>
> et ici tu alloues la place pour une matrice d'�lements et non un vecteur de
> pointeurs
Pourquoi ne pas d�clarer un tableau d�s le d�part, ce qui correspond �
la r�alit� et simplifie la suite ?
typedef t_sorted_grid_point TdistTable[NB_NEIGHBOR][NB_NEIGHBOR];
TdistTable* pdistTable =
malloc(NB_MAX_GRID_POINT*NB_NEIGHBOR*sizeof(t_sorted_grid_point));
#define distTable (*pdistTable)
--
Pierre Maurette
Technical Details
Message-ID:
<mn.ec367d5996d935a6.31483@laposte.net>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-4.proxad.net!news18-e.free.fr!not-for-mailReferences:
<1127923112.347881.79740@z14g2000cwz.googlegroups.com> <1128006219.590857.313500@g47g2000cwa.googlegroups.com> <dhh0u1$nn7$1@s1.news.oleane.net>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,9ee84542aed426f5
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-4.proxad.net!news18-e.free.fr!not-for-mail
Subject: Re: Tableau: différence entre pile et tas
From: "Pierre Maurette" <maurettepierre@wanadoo.fr>
References: <1127923112.347881.79740@z14g2000cwz.googlegroups.com> <1128006219.590857.313500@g47g2000cwa.googlegroups.com> <dhh0u1$nn7$1@s1.news.oleane.net>
Newsgroups: fr.comp.lang.c
Message-ID: <mn.ec367d5996d935a6.31483@laposte.net>
X-Newsreader: MesNews/1.04.00.00
Date: Thu, 29 Sep 2005 17:58:13 +0200
MIME-Version: 1.0
X-Face: cmi$3R1_J{[}5K|8d'LDiJ$SsZ*gn,j*PhJ#KVGt+45,E_N9O}GrhhQ>fb&q<&lz=g%PEv' u"m)N|KrBMux?2:E?N7Uw3L#H>L#GwM}<qH-?#_Y$B9]$q1"~iUGtN#HVy?}7.`m&iKF>gY:.`W.qu z`1'W'h-AXPmB]#7~<+@H.<0M`-jBkCWbmkcT_*LBVD3|p1a?h1H;cHq{$-vbeP@Hdcqp5z~lwU7ZK `~
Reply-To: maurettepierre@wanadoo.fr
Content-Type: text/plain; charset="iso-8859-15"; format=flowed
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 0539-2, 29/09/2005), Outbound message
X-Antivirus-Status: Clean
Lines: 62
Organization: Guest of ProXad - France
NNTP-Posting-Date: 29 Sep 2005 17:56:53 MEST
NNTP-Posting-Host: 84.7.245.3
X-Trace: 1128009413 news18-e.free.fr 4309 84.7.245.3:3821
X-Complaints-To: abuse@proxad.net