Vie2006
Messages postés15Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention20 février 2007
-
20 févr. 2007 à 03:18
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008
-
20 févr. 2007 à 22:30
Bonjour
Je declare un tableau a deux dimensions dynamique. ensuite, j'alloue la memoire d'une facon dynamiques.
Sauf que lorsque je passe le tableau en parametres à une autre fonction et lorsque je veux remplire mon tableau, un bogue apparait. voici un exemple de mon code
Void main ()
{
float **S;
int status;
S = (float *) malloc (4* sizeof(float));
for (i = 0; i<4; i++)
{
S[i] = (float *) malloc ((5)* sizeof(float));
}
status = Fontionc (S)
24Karas
Messages postés233Date d'inscriptionjeudi 4 juillet 2002StatutMembreDernière intervention 5 juillet 2008 20 févr. 2007 à 09:10
Surement parce que ta fonction "Fonction" DOIT retourner un int et ne retourne rien, donc ta variable status ne sait pas quoi recupérer ! T'aurais pas un warning à la compilation ? c'est quoi le compilo merdique que tu utilises ?
le code suivant marche bien ici ...
#include <stdio.h>
#include <stdlib.h>
int Fonction (float **S)
{
S[0][0] = 4;
return 0; // MANQUE LE RETURN ICI
}
int main (void)
{
float **S;
int i;
int status;
S = (float **) malloc (4* sizeof(float *)); // MANQUE UNE ETOILE DEVANT LE malloc
for (i = 0; i<4; i++)
{
S[i] = (float *) malloc ((5)* sizeof(float));
}
status Fonction(S); // APPEL DE Fonction ET NON Fonctionc
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 20103 20 févr. 2007 à 20:36
Bonsoir,
Essaie de poster un code qui compile et ensuite on verra les bogues !!!
bertrand@nestor:~/tmp$ gcc -W -Wall main.c
main.c:1: error: erreur de syntaxe before "main"
main.c:2: attention : return type defaults to `int'
main.c: Dans la fonction « main »:
main.c:6: attention : implicit declaration of function `malloc'
main.c:6: attention : affectation d'un type pointeur incompatible
main.c:7: error: `i' undeclared (first use in this function)
main.c:7: error: (Each undeclared identifier is reported only once
main.c:7: error: for each function it appears in.)
main.c:11: attention : implicit declaration of function `Fontionc'
main.c:14: error: erreur de syntaxe before '}' token
Matt...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008 20 févr. 2007 à 22:30
salut, ton probleme est au niveau de l'allocation de la memoire pour S.
tu proccede ainsi :
S = (float *) malloc (4* sizeof(float));
for (i = 0; i<4; i++)
{
S[i] = (float *) malloc ((5)* sizeof(float));
}
ce qui est faux car il s'agit de double pointeur.
donc la solution est :
S = (float**) malloc (4 );
for (int i = 0; i<4; i++)
S[i]= (float *) malloc (sizeof(float));