Aide Structure en C
Résolu/Fermé
ad
-
8 nov. 2006 à 17:16
kilian
kilian
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
A voir également:
- Aide Structure en C
- Dans la table des matières de ce document, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structur - Forum - Word
- Table des matières et majuscules ✓ - Forum - Bureautique
- Structure requete http - Guide
- La structure a besoin d'un nettoyage ✓ - Forum - Debian
- On veut créer un répertoire pour stocker les informations des étudiants (cne, nom, prénom et date de naissance). la structure es - Forum - C
4 réponses
lami20j
8 nov. 2006 à 19:29
- Messages postés
- 21331
- Date d'inscription
- jeudi 4 novembre 2004
- Statut
- Modérateur, Contributeur sécurité
- Dernière intervention
- 30 octobre 2019
8 nov. 2006 à 19:29
Salut,
en attendant l'aide des personnes beaucoup, beaucoup plus experimentées en regardant ton code j'ai déjà remarqué des erreurs
typedef struct image_N
{
int **tableau;
}image_N
Pour la déclaration des structures tu peux faire
En ce qui concerne l'allocation de la mémoire il faut plutôt quelque chose de genre
en attendant l'aide des personnes beaucoup, beaucoup plus experimentées en regardant ton code j'ai déjà remarqué des erreurs
typedef struct image_N
{
int **tableau;
}image_N
Pour la déclaration des structures tu peux faire
struct image_N { int **tableau; };ou avec typedef
typedef struct { int **tableau; }image_N;Il ne faut pas oublier le point-virgule à la fin
En ce qui concerne l'allocation de la mémoire il faut plutôt quelque chose de genre
(struct image_N *) malloc( 5 * sizeof(struct image_N) )lami20j
mamiemando
9 nov. 2006 à 20:39
- Messages postés
- 31297
- Date d'inscription
- jeudi 12 mai 2005
- Statut
- Modérateur
- Dernière intervention
- 10 août 2022
9 nov. 2006 à 20:39
Il faut allouer aussi chaque case des tableaux 1D
ou quelque chose de ce goût là...
Bonne chance
#include <stdlib.h> struct matrix2d_t{ unsigned int nb_ligne; unsigned int nb_colonne; int **data; }; matrix2d_t new_matrix2d( unsigned int nb_lig, unsigned int nb_col ){ matrix2d_t m; unsigned int i; m.data = (int **) malloc(nb_lig*sizeof(int *)); for(i=0;i<nb_lig;++i){ m.data[i] = (int *) malloc(nb_col * sizeof(int)); //alloc tableau 1d } m.nb_ligne = nb_lig; m.nb_colonne = nb_col; return m; } void del_matrix(matrix2d * m){ unsigned int i,nb_lig=m.nb_ligne; for(i=0;i<nb_lig;++i){ free(m->data[i]); } free(m->data); free(m); }
ou quelque chose de ce goût là...
Bonne chance
lami20j
11 nov. 2006 à 17:06
- Messages postés
- 21331
- Date d'inscription
- jeudi 4 novembre 2004
- Statut
- Modérateur, Contributeur sécurité
- Dernière intervention
- 30 octobre 2019
11 nov. 2006 à 17:06
Salut,
merci pour le cours ;-))
lami20j
merci pour le cours ;-))
lami20j
kij_82
10 nov. 2006 à 17:17
- Messages postés
- 4088
- Date d'inscription
- jeudi 7 avril 2005
- Statut
- Contributeur
- Dernière intervention
- 30 septembre 2013
10 nov. 2006 à 17:17
Bien vu ^^
kilian
11 nov. 2006 à 17:55
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
11 nov. 2006 à 17:55
Vouich, je crois que si l'on oublie d'inclure stdlib.h pour malloc on peut avoir des erreurs de ce type.
8 nov. 2006 à 20:30
ou
Et dans ta fonction par contre, je dirais plus un truc dans le genre :
8 nov. 2006 à 22:58
j'ai oublié de préciser( je sais pas si sa change quelque chose ) que dans ma structure je definis 2 autres variable de type int..j'espere que sa influ pas...
Je voudrais savoir quel etait le role de ta commande
i = (struct image_N *) malloc( sizeof(struct image_N) );
j'ai l'impression que tu alloues de la memoire a la structure mais pk et combien puisqu'elle n'est pas encore définit...
merci comme meme pour votre aide ;)
9 nov. 2006 à 09:32
Par contre, tu inclu bien ton fichier.h au moins dans ton .c ?!
Parce que sinon c'est normal qu'il ne te le reconnaisse pas.
Pour inclure ton .h :
Enfin... la déclaration je confonds peut etre avec php a force... ^^
Je pense que ca ne te le reconnais pas parce que ton 'i' n'est pas un pointeur dans ta fonction, donc met une * juste avant ton i (et de meme pour le retour de la fonction si je me souviens bien :