J’ai un petit TP a réalisé qui consiste à enregistrer des mots alphanumériques dans un tableau et trier ce dernier avant l’affichage.
Tout se passe PRESQUE merveilleusement bien .
Le problème apparait lorsque je tente de compiler le code sous UNIX (distrib Linspire ( vous pouvez critiquer voir même me conseiller sur les distrib je débute)).
La compilation avec Dev C++ & co sur l’os de bilou ne pose pas de problème mais sur son ersatz de Linspire j’ai le droit à ca:
" error: incompatible types in assignment "
Cette erreur me renvoie à la ligne dans laquelle j"affecte à un string ( oui ok tableau de char) la valeur d’un autre.
Je le redis mais cela passe parfaitement sous les compilateurs quand je suis sous windows.
/Méthode permettant de saisir les identifiants/
void saisie()
{
printf("entrer un identifiant:\n");
scanf("%s",size);
if(strlen(size)>20)
{
printf("Votre identifiant ne respecte pas la taille limite autorisée: %d", strlen(size));
saisie();
}
else
{
buf = size; // c'est cette ligne qui pose problème
}
}[/code]
Pour ceux qui veulent du rab j’ai aussi un warning à la compilation me disant que mon main ne renvoie pas un int, si y a moyen de virer ce warning.
Merci la zone !
ps: je n’arrive pas à joindre le fichier source ici mais si y a besion je le copierai en copy past ici il est pas bien lourd.
[quote=“djktk, post:2, topic: 46010”]pour ton main a la fin tu rajoutes un return 0;
pour ton probleme strcpy(buf, size);[/quote]
Je me doutais que ca n’était pas méchant mais merci du coup de main.
Petites questions en vracs supplémentaires du coup B)
Pourquoi sur les outils de dev sous windows je n’avais pas cette erreur ?
-J’ai un autre (gros ?) problème avec ma distribution (Linspire pour les deux du fond qui ne suivent pas):
A l’affichage de certaines pages internet il me ferme toutes les pages du navigateurs.
exemple : je suis sur cafzone, paf je m’ouvre un onglet pour aller sur lequipe.fr , il charge normalement la page de lequipe et à la place de l’afficher il ferme le navigateur.
J’utilise le navigateur de Linspire & Firefox même résultat.
Pour la distrib je me doute qu’il doit y avoir de tout , j’ai déjà testé ubuntu etc mais à part ces deux là la/lesquelle(s) sont les plus « stables ».
Je ne veux pas lancer un débat sur les distrib juste savoir laquelle correspondrait le mieux à ce que je recherche sur les deux criteres de la stabilité et de la légereté (Linspire est bien bien lourd T_T).
Par exemple toi tu utilises(ou utilisais) laquelle ?
debian avec xfce mais c’etait il y a 3 ans et je faisais avec les moyens du bord… dans mon bts ils etaient tres user friendly et faisaient l’apologie de feu-mandrake, dans mon ecole d’inge ils ont tout sous debian testing (y compris les serveurs, mais c’est un autre probleme…)
pour resumer, je te conseille d’en essayer plusieurs (vivent les live-cd) et de voir une semaine sur chaque laquelle correspond le mieux a tes besoins… pour la stabilite et la legerete, et ca n’engage que moi, je le souligne, je te dirais xubuntu (ubuntu xfce) en version stable.
[quote=« Le_Duc, post:1, topic: 46010 »]if(strlen(size)>20)
{
printf("Votre identifiant ne respecte pas la taille limite autorisée: %d", strlen(size));
saisie();
}[/quote]
Pourquoi tu ne limites pas la taille de la saisie au lieu de laisser scanf() tout écraser ? Le plus simple c’est d’utiliser fgets(), sinon pour comprendre scanf() : http://xrenault.developpez.com/tutoriels/c/scanf/
Tu peux utiliser un do while au lieu de ta fonction récursive.
Le compilateur de Dev-C++ c’est GCC mais il n’est plus à jour, mieux vaut utiliser wxDev-C++ (ou Codeblocks qui est multiplateforme).
Comme l’indique plus ou moins Dap, tu viens de coder un programme permettant un buffer overflow. Tu liras 100 fois scanf(3) en te flagellant avec des orties B)
[quote=“DaP, post:12, topic: 46010”]Pourquoi tu ne limites pas la taille de la saisie au lieu de laisser scanf() tout écraser ? Le plus simple c’est d’utiliser fgets(), sinon pour comprendre scanf() : http://xrenault.developpez.com/tutoriels/c/scanf/
Tu peux utiliser un do while au lieu de ta fonction récursive.
Le compilateur de Dev-C++ c’est GCC mais il n’est plus à jour, mieux vaut utiliser wxDev-C++ (ou Codeblocks qui est multiplateforme).[/quote]
Euh laisse moi regarder ca avec mon ami google histoire que je comprenne de quoi tu parles et je te réponds.
Ca me fait ca avec les sites suivant de l’equipe, celui de boulet(snif) & telerama et j’en passe plein.
Donc oui doit y avoir un probleme avec flash et java.
edit : Bon je vais réinstaller les plugin java & flash y a que ca à faire de toute façon.
edit2: c’était bien le plugin Flash qui râlait merci B)