Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Aide Structure en C

ad, le mercredi 8 novembre 2006 à 17:16:13
Bonjour,
voila g un gros prob d'allocation memoire pour un tableau double champ situé ds une sructure.

G definit ma structure ds un fichier .h de la facon suivante :

typedef struct image_N
{
int **tableau;
}image_N

image_N saisie( );

puis ds mon fichier c
je definis ma sous fonction

image_N saisie( )
{
image_N i;

i.tableau = (int**) malloc ( 5 * sizeof (int*));
return(i)

}

Lors de la compilation le compilateur m'indique a la ligne ou j'alloue la mémoire que j'ai un probleme d'assignation de type incompatible...

Pourriez vous m'aider a resoudre ce proble urgent svp...
Merci bcp d'avance
Répondre à ad  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lami20j, le mercredi 8 novembre 2006 à 19:29:14
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
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
Répondre à lami20j

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le mercredi 8 novembre 2006 à 20:30:46
Pour ce qui est de la déclaration de la structure, ce qui as été donné par lami20j est bon :
typedef struct {
   int **tableau;
}image_N;


ou

typedef struct image_N {
   int **tableau;
};


Et dans ta fonction par contre, je dirais plus un truc dans le genre :
image_N saisie( )
{
image_N i;

i = (struct image_N *) malloc(  sizeof(struct image_N) );
i.tableau = (int**) malloc ( 5 * sizeof (int*));

return(i)

}

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
adibou, le mercredi 8 novembre 2006 à 22:58:58
Je te remercie pour ta reponse j'ai fait ce que tu me propose mais il me sort toujour la meme erreur...


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 ;)
Répondre à adibou

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le jeudi 9 novembre 2006 à 09:32:41
Tu alloue déjà de la mémoire à ta structure (qu'elle contienne en plus des entier ou autre n'est pas un probleme), puis ensuite, puisque tu as un pointeur sur pointeur d'entier, il faut aussi que tu l'alloue. D'ou le fait d'allouer déjà la structure, puis chacun des composants (pointeur). Pour ce qui est des autres types simple faisant parti de ta structure, leur place sera allouée lors de l'allocation de la structure.

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 :
#include <./mon.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 :

image_N * saisie( )
{
image_N * i;

i = (struct image_N *) malloc(  sizeof(struct image_N) );
i->tableau = (int**) malloc ( 5 * sizeof (int*));

return(i)

}


~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamiemando, le jeudi 9 novembre 2006 à 20:39:57
Il faut allouer aussi chaque case des tableaux 1D
#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
Répondre à mamiemando

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lami20j, le samedi 11 novembre 2006 à 17:06:56
Salut,

merci pour le cours ;-))

lami20j
Répondre à lami20j

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le vendredi 10 novembre 2006 à 17:17:54
Bien vu ^^
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 kilian, le samedi 11 novembre 2006 à 17:55:07
Vouich, je crois que si l'on oublie d'inclure stdlib.h pour malloc on peut avoir des erreurs de ce type.
..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...
Répondre à kilian

Résultats pour aide Structure en C

Les structures conditionnelles avec Php Qu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1... www.commentcamarche.net/contents/php/phpcond.php3
Langage C - Les structures conditionnelles Qu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent... www.commentcamarche.net/contents/c/ccond.php3
Langage C++ - Les structures conditionnelles Qu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent... www.commentcamarche.net/contents/cpp/cppcond.php3

Résultats pour aide Structure en C

[PHP] Les ressemblances à ne pas confondreLes ressemblances à ne pas confondre Introduction Concatenation ou paramètres ? Guillemets/Apostrophe Structure require/include isset vs empty htmlentities ou htmlspecialchars ? Nombre de signes égal Introduction Cette astuce présente... www.commentcamarche.net/faq/sujet-4479-php-les-ressemblances-a-ne-pas-confondre
Structure logique d'un disque durStructure logique d'un disque dur Introduction Lorsque vous utilisez votre ordinateur, vos données sont organisées sous forme de fichiers et de répertoires, selon une structure arborescente et ces éléments sont stockés sur votre disque dur. C'est... www.commentcamarche.net/faq/sujet-6034-structure-logique-d-un-disque-dur

Résultats pour aide Structure en C

[Langage C] Les structures ? (Résolu)Bonjour, J'ai un petit probléme, lorsque j'écrit mon programme, j'utulise des structures, ces structures peuvent etre utulisés dans des fonctions, le probléme c'est que je n'arrive pas à modifier la structure originelle pour... www.commentcamarche.net/forum/affich-2812731-langage-c-les-structures
[borland c] fonction & structure (Résolu)salut tout le monde s'il vous plait j'ai besoin d'aide a propos des fonction en c je voudrais faire entrer un tableaus structuré comme parametre dans la fonction mais ca ne marche pas voila la structure struct geo { char ville[15]; char... www.commentcamarche.net/forum/affich-2798842-borland-c-fonction-structure
Probleme en c++ sur struct. (Résolu)bonjour , j'ai de nouveau un soucit avec un programme que je fais en c++ le voici: #include #include #include using namespace std; typedef struct {char marque[10];char model[10];int proscesseur;int ram;int dd;char... www.commentcamarche.net/forum/affich-1790044-probleme-en-c-sur-struct

Résultats pour aide Structure en C

Télécharger OnScreen DNA Lite Que vous soyez enseignant ou étudiant, vous avez, tous, entendu parlé d'ADN une fois dans votre vie. OnScreen DNA est un modèle en 3D de la double hélice de l'ADN. Il ne comprend que l'essentiel de sa structure comprenant : les phosphates, les... www.commentcamarche.net/telecharger/telecharger-34056063-onscreen-dna-lite
Télécharger WBS Chart ProWBS Chart Pro est un outil de gestion de projet qui utilise des diagrammes et des arborescences structurés pour designer graphiquement un projet. Etant en même temps un outil autonome , il peut collaborer avec Microsoft Project comme outil de... www.commentcamarche.net/telecharger/telecharger-34056852-wbs-chart-pro

Résultats pour aide Structure en C

Pharaoh : Cleopatra, Queen Of The Nile ExpansionGenre:Straégie, Avis ESRB:Everyone 6+, Développeur:BreakAway Games Ltd., Impressions Games, Description:Cleopatra is an expansion pack to Pharaoh. New structures, new units, new skills are now available. You will need them to tame the 4 new campaigns... www.commentcamarche.net/guide-achat/pharaoh-cleopatra-queen-of-the-nile-expansion-770022-fiche-technique

Résultats pour aide Structure en C

VBScript - Les structures conditionnellesQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (VBScript associe le mot clé true à... www.commentcamarche.net/contents/vbscript/vbscond.php3
Java: Les structures conditionnellesQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent... www.commentcamarche.net/contents/java/javacond.php3
Perl - Les structures conditionnellesQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent... www.commentcamarche.net/contents/perl/perlcond.php3