Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [C] Probleme de passage d'un pointeur de tableau [ Divers / Débutant(e) ] (tenev911)

dimanche 3 décembre 2006 à 01:11:08 | [C] Probleme de passage d'un pointeur de tableau

tenev911

Bonjour, voici mon probleme :

J'utilise la librairie ncurses.h et il permet de faire un type de variable appellé WINDOW (qui correspond graphiquement à un pointeur qui me permettra de creer une zone de texte sur l'écran) et qui est un pointeur, donc WINDOW*

J'ai fait une fonction qui affiche un tableau (Car c'est un peu compliqué d'en faire un sous ncurse.h) et qui "retourne" en quelque sorte les cases de la grille pour pouvoir apres écrire à l'interieur. Et j'ai un probleme de passages de pointeurs de tableau, je m'explique :

Je creer ma fonction :
#define HAUTEUR 10
#define LARGEUR 10

void affichTab(WINDOW **cases[HAUTEUR][LARGEUR], autre_arguments...)
{
      Je creer et affiche ma table ici et pour chaque cases je fait :
      *cases[0][0] = newwin(coordonnées et taille de la case) // Creer une zone de texte sur l'écran dans lequel on pourra écrire dedans apres
      // En vrai j'utilise un double for pour faire ca a toutes les cases
}

Apres coup, dans le main je met ceci :
int main(void)
{
   WINDOW *cases[HAUTEUR][LARGEUR];
   affichTab(&cases, autres_arguments...);
   wprintw(cases[0][0], "Salut je suis la case 0,0"); // wprintw me permet d'écrire dans la zone graphique que j'ai prédéfinit dans la fonction
}

Donc voila, si je n'invoque pas la fonction affichTab, le wprintw ne saura pas où écrire vu que je n'aurai pas utiliser la fonction newwin, mais quand je l'utilise de la façon que je vient de vous décrire, il me dit que je passe un type d'argument incompatible.

Si dans ma fonction je met en argument *cases[HAUTEUR][LARGEUR] et que dans l'appel de ma fonction je met cases au lieu de &cases, alors parfois ca marche et parfois j'ai une erreur de segmentation (normal)

Je suis encore débutant en C mais je pense que c'est peut-etre parce que je ne sais pas trop passer en argument un pointeur de tableau à deux dimensions. J'ai tout essayé : &cases, cases, &(*cases) mais rien n'y fait.
Si la fonction malloc est la solution, je ne sais pas l'utiliser pour un tableau à deux dimensions.

Merci à ceux qui pourront m'aider

dimanche 3 décembre 2006 à 11:48:57 | Re : [C] Probleme de passage d'un pointeur de tableau

Bling 182

Salut !

Déjà, dans ton main tu déclares un WINDOW *cases, et dans afficheTab tu prends en paramètre un WINDOW **cases. Ca ne peut pas fonctionner.

Et il faut te décider si tu déclares avec des pointeurs, ou avec une taille définie, c'est à dire WINDOW **cases; OU WINDOW cases[HAUTEUR][LARGEUR]; .



dimanche 3 décembre 2006 à 16:12:17 | Re : [C] Probleme de passage d'un pointeur de tableau

yann_lo_san

Le pointeur d'un WINDOW case[10][10] est case[0] et pas &case !


dimanche 3 décembre 2006 à 20:09:16 | Re : [C] Probleme de passage d'un pointeur de tableau

tenev911

Hum, ca ne marche toujours pas, si j'ai compris vos expliquations dans ma fonction je doit faire :

void affichTab(WINDOW *cases[HAUTEUR][LARGEUR], autre_arguments...)

Puis dans l'appel :
WINDOW cases[HAUTEUR][LARGEUR];
affichTab(cases[0][0], arguments...);

Mais j'ai toujours un type incompatible dans la compilation, étrange


dimanche 3 décembre 2006 à 21:22:58 | Re : [C] Probleme de passage d'un pointeur de tableau

yann_lo_san

Réponse acceptée !

Non, tu n'as pas bien compris, il faut que tu revois l'utilisation de pointeurs.

void affichTab(WINDOW* cases, autre_arguments...)

Puis dans l'appel :
WINDOW cases[HAUTEUR][LARGEUR];
affichTab(cases[0], arguments...);

dimanche 3 décembre 2006 à 22:14:13 | Re : [C] Probleme de passage d'un pointeur de tableau

tenev911

Merci ça marche ! Je n'ai plus l'erreur !



Cette discussion est classé dans : fonction, probleme, tableau, cases, pointeur


Répondre à ce message

Sujets en rapport avec ce message

question sur les pointeur et tableau et matrice [ par Battousai ] bonjour a tous,ma question se porte comme indiqué si dessus sur l'utilisation des pointeur avec les tableau et surtout les matrices ou plus.d'abord j' Structures en C / Win2k / Dev-Cpp [ par BaptX ] Bonjour à tous,J'aurai quelques questions à vous poser en ce qui concerne le passage de structures en C. Comme c'est un peu comme les pointeurs, je me Petit probleme avec un tableau [ par petitavion414 ] Salut à tous...J'ai un petit problème mais que je n'arrive pas à résoudre.Comment puis-ju passer en argument un tableau dans une fonction... Je m'expl qsort fonctionnement? [ par deck_bsd ] Bonjour a tous,Voila, je voudrai trier ce tableau :char nt[][100] = {"un","trois","quatre","cinq","a","bb","b","axxxxxxxxxxxxxxxxxxx"};Avec la fonctio pointeur sur une fonction [ par pasty ] Bonjour,J'appelle une fonction f(int *,int *,int) dont le code  est dans un DLL depuis le programme principal main.cpp Je déclare la fonction dans m Probleme avec backtracking [ par sda2 ] Bonsoir à tous, Je vous expose vite mon probleme, je souhaite realiser un sudoku (9x9), cependant il ne resoud que les sudokus facile, moyen et lui re Probleme backtracking [ par sda2 ] Bonsoir à tous, Je vous expose vite mon probleme, je souhaite realiser un sudoku (9x9), cependant il ne resoud que les sudokus facile, moyen et lui r Appeler la classe parent [ par Metrox ] Salut à tous.J'utilise une classe A et une classe B.dans la classe A, je construis quatre objets (objet[i], i: 0-->3) B.de plus j'ai un tableau bidime saisir une fonction dans le terminal [ par ousin ] Salut! Le probleme que je vais vous exposer dure depuis plus d'une année. Au debut j'avais ecri un programme qui tracer un courbe mais la fonction à t passage de valeurs de fonction a fonction [ par binoua ] salut à tous,Je débute en c++ et je n'arrive pas à faire le truc de base. En fait dans ma fonction principale je rentre le nom d'un fichier puis je di


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.