|
Page : 1 2 Page Précédente | |
Auteur | Sujet : [c] Passer l'adresse d'un tableau a 2 dim en parametre [OK] |
Publicité | Posté le 26-04-2004 à 15:42:16 |
kadreg profil: Utilisateur | Un programme en C, c'est comme un ciel d'été : c'est plein d'étoiles --------------- brisez les rêves des gens, il en restera toujours quelque chose... -- laissez moi troller sur discu ! |
fif_x |
|
fif_x | Gros Doute :
|
fif_x | J'ai trouvé une solution en faisant :
|
sisicaivrai Life is Beautifullll | void Fonction (int* Vector)
--------------- blog dessins + srtCleaner | Ricoh R6 | K20d | MK-wii 5112-3549-9484 | en phase de déblablatisation depuis le 26 avril 2002 | Belgian Connection |
fif_x | non désolé ce n'est pas ça, le compilateur me dit toujours passing arg 1 of `Fonction' from incompatible pointer type |
djdie L'heure, c'est l'heure. | Lors du passage en paramètre d'un tableau à 2 dimensions le compilateur perd la taille de la dimension 2, qui est pourtant indispensable pour indexer correctement le tableau (car un tableau à deux dimensions, en mémoire, est "tout plat" ). Donc il y a plusieures manières de faire, par exemple :
Message édité par djdie le 26-04-2004 à 17:47:58 |
darkoli Le Petit Dinosaure Bleu | Allez, soyons fou, je rajouterais même foo4 :
Ce qui permet, une fois à l'intérieur de la fonction, de connaître le nombre de lignes (l) et le nombre de colonnes (c).
Message édité par darkoli le 27-04-2004 à 08:34:43 |
Taz bisounours-codeur | pour les dimensions, utilisez le type prévu pour : size_t |
Publicité | Posté le 26-04-2004 à 18:37:32 |
Kmikaz92 4ever | Pour passer un tableau 2D suffit de faire :
|
djdie L'heure, c'est l'heure. |
|
Kmikaz92 4ever | Oops me croyait en PHP en fait Et encore je sais pas si ca marche en PHP mais je me souviens l'avoir fait...
|
fif_x | Merci de toutes les réponses, c'est vraiment sympa
|
jagstang Pa Capona ಠ_ಠ | plutôt que d'essayer de rajouter une * par là, ajouter un & par là, vaudrait mieux relire le chapitre sur les pointeurs |
fif_x | Alors j'ai testé un peu toute les solutions, elles marchent bien.
Message édité par fif_x le 27-04-2004 à 10:01:54 |
HelloWorld Salut tout le monde! |
? |
fif_x | oui, ça te parait peut-etre stupide. Et c'est surement pour ça que ça ne marchait pas |
HelloWorld Salut tout le monde! | non non, regarde, j'ai rajouté un "&" |
Taz bisounours-codeur |
et il les connait comment les dimensions ton compilateurs ? |
HelloWorld Salut tout le monde! |
|
jagstang Pa Capona ಠ_ಠ |
|
fif_x |
|
Kmikaz92 4ever | Ba deja ya les dimensions qu'il faut indiquer.
|
djdie L'heure, c'est l'heure. | Faudrait pas tout mélanger quand même. Le code de HelloWorld est parfaitement correct, ou alors je n'ai pas compris la question initiale.
|
fif_x | Non, le passage de paramètre est bon, c'est dans ma fonction que j'avais un problème
|
darkoli Le Petit Dinosaure Bleu |
|
djdie L'heure, c'est l'heure. |
Message édité par djdie le 29-04-2004 à 00:43:02 |
fif_x | Merci beaucoup de ta réponse, c'est très clair maintenant |
fif_x | Bonjour,
Message édité par fif_x le 10-05-2004 à 16:23:37 |
darkoli Le Petit Dinosaure Bleu | Ce serais déjà une bonne chose de vérifier que tes allocations mémoire se déroulent sans problème.
Tu as un tableau dont la longueur des chaines de caractères est fixe pourquoi "s'embêter" avec une deuxième dimension.
Avec la fonction calloc tu auras déjà initialisé toutes tes chaines à "".
Il faut faire attention à la longueur des chaines que tu copies, par exemple en utilisant strncpy.
En espérant ne pas avoir dit trop de conneries. Message édité par darkoli le 10-05-2004 à 21:26:01 |
fif_x | Merci beaucoup je vais essayer avec ça |
djdie L'heure, c'est l'heure. | Sans parler de la façon d'utiliser malloc, il est logique que le compilo gueule. Names est un char**. Après initialisation, il pointera ici sur le premier élément d'un tableau de char*, et chacun de ces char* pointera sur le premier élément d'un tableau de char (après initialisation dans la boucle). Ce n'est PAS la même chose qu'un tableau à deux dimensions, même si la syntaxe utilisée pour accéder aux éléments est la même.
|
fif_x | tu fait prof de C djdie ?
|
fif_x |
|
djdie L'heure, c'est l'heure. | Si tu veux utiliser ta fonction telle quelle tu dois déclarer un vrai tableau à deux dimensions :
|
fif_x | Merci, mais le problème étant que je ne connais pas à l'avance la taille du tableau.
|
torpe23 | Un truc pas mal que j'ai eu en cours ce matin:
Message édité par torpe23 le 10-05-2004 à 20:28:07 |
Taz bisounours-codeur | je vois juste que sur un système 32bits, ton tableau fait 40ko et n'est évidemment pas souple du tout |
darkoli Le Petit Dinosaure Bleu |
|
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
[c++] Se rendre a une adresse url nouvel essai | Transformer une image monochrome en tableau de bit |
procedure : passage de parametre | [PHP] savoir si un tableau contient au moins un element ? |
recuperer la premiere ligne d'un tableau | Afficher un gif dans mon tableau d'affichage [edit] |
Faire un tableau de variables d'une classe? | [Dreamweaer Mx] : Pb d'espaces entre 'tableau de mise en forme' |
passer des donnees comme avec un formulaire, mais sans formulaire... | [Builder6] tableau pour un accès rapide et régulier de données? |
Plus de sujets relatifs à : [c] Passer l'adresse d'un tableau a 2 dim en parametre [OK] |