Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 130349Cette discussion

Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » Probleme de pointer et de cast.
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
Probleme de pointer et de cast.
Avatar
Auteur: phenix (IP enregistrée)
Date: le 2 janvier 2004 à 13:03

Bonjour
je debut en C, les histoires de caste, de pointers ... ne sont pas encore tres claire pôur moi.

/* menu.c
* Debut de developement: Wed Dec 31 17:07:18 GMT 2003
* Version: 002
* Copyright: phenix 2003
* Licence GPL
*/

#include <stdio.h>
#include <ncurses.h>
#include "gnumeteo.h"

int menux ;
int menuy ;


void mk_menu( char *choix[] )
{
WINDOW *menubox ;
int i ;
int x = 2 ;
int y = 2 ;




int n_choix = sizeof(choix) / sizeof (char *); /* determine la taille du tableau */
menuy = (LINES - MENUHAUT ) / 2;
menux = (COLS - MENULARG ) / 2;
menubox = newwin( MENUHAUT , MENULARG , menuy , menux );
box(menubox, 0 , 0); /* dessin d'une boite */
for(i = 0; i < n_choix; ++i )
{
/*printw("%s" ,n_choix ) ;*/
mvprintw( menubox, x , y, "%s" , choix[i]); /*<< ligne 34 */
++y ;
}
/* wrefresh(menubox); */
refresh();

}

Lorsque je compile j'ai le message suivant. qui me semble bizzard car j'ai passé l'apres midi mais je vois vraiment pas mon ereur.


menu.c: In function `mk_menu':
menu.c:34: warning: passing arg 1 of `mvprintw' makes integer from pointer without a cast
menu.c:34: warning: passing arg 3 of `mvprintw' makes pointer from integer without a cast

Re: Probleme de pointer et de cast.
Auteur: miguel2i (IP enregistrée)
Date: le 2 janvier 2004 à 23:53

Pas de probleme de pointer en vue mais un probleme de prototype de fonctions.
Un petit man mvprintw donne :

int printw(char *fmt [, arg] ...);
int wprintw(WINDOW *win, char *fmt [, arg] ...);
int mvprintw(int y, int x, char *fmt [, arg] ...);
int mvwprintw(WINDOW *win, int y, int x, char *fmt [, arg] ...);

Je pense que tu veux utiliser la fonction mvwprintw au lieu de mvprintw.

Re: Probleme de pointer et de cast.
Avatar
Auteur: phenix (IP enregistrée)
Date: le 3 janvier 2004 à 10:26

bonjour
Au merci beaucoup. Je n'est plus de warning maintenant. Et bien que le resultat ne soit pas encore celui que je souhaite. on s'y approche. Je vais essayer de regler moi même mon probleme d'affichage.
Seul la premiere ligne du tableau s'affiche.

Encore une autre question. commant afficher la valeur de [i] sur chaque ligne ?

Re: Probleme de pointer et de cast.
Auteur: miguel2i (IP enregistrée)
Date: le 4 janvier 2004 à 16:41

pour afficher la valeur de [i] sur chaque ligne, il suffi de mettre à la ligne 34 :
mvwprintw( menubox, x , y, "%d %s" , i , choix[i]);
comme avec les fonctions printf

Pour le tableau qui n'affiche que la premier ligne, voici le probleme :
int n_choix = sizeof(choix) / sizeof (char *);
n_choix est toujours égal à 1. Vérifie avec un printf .
en effet, sizeof(type) est remplacé à la compilation par la taille d'un type ou d'une variable. choix est une variable de type char ** (un pointeur) et char * est un pointeur.

Pour la solution on va te laisser chercher !!!

Re: Probleme de pointer et de cast.
Avatar
Auteur: phenix (IP enregistrée)
Date: le 5 janvier 2004 à 18:51

Bonjour et merci pour tes presisions. J'essayerais lorsque j'aurais plus de temps libre.



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.