[Résolu]Petit blocage en C + pb Linspire

Hi there la Zone,

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.

[code]// variables globales
char **table;
char buf[MAX];
int boucle = 0;
char size[20];

//Fonctions:
//---------

/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.

pour ton main a la fin tu rajoutes un return 0;

pour ton probleme strcpy(buf, size);

[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.

Si quelqu’un peut m’éclairer là dessus merci !

btw : merci djktk pour ta réponse

ca depend du compilateur que tu utilises ainsi que des options de celui ci… par exemple un gcc -Wall -ansi sera plus strict qu’un compilo de devc++ …

edit : pour ta distrib aucune idee, dsl.

et voila…
Mais le compilo MS ne devrait pas te laisser ecrire ce genre de code… c’est ce qu’il se passe quand on veux trops aider les gens…

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 ?

Merci .

Du calme, il fait du C B)

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.

Je débute en C moi j’ai surtout fait du J2SE J2ME etc >_< (donc merci pour le lien)

Merci pour votre aide je n’ai plus de problème concernant le C, juste mon probleme de navigateur sous Linspire.

En fait je viens de constater que lorsque je charge une page qu’il n’aime pas il me ferme tous les navigateurs web…

Justement, c’est la description de <string.h>…

Ah my bad, j’ai lu “stdstring” sur un domaine “cppreference” et j’ai compris std::string… Je sais pas ce que j’ai aujourd’hui, mais ça va pas B)

[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]

Merci beaucoup pour la remarque !
Je suis entrain de manger le tuto du site du zéro.

Si vous débutez ( et donc abusez du scanf ) lisez vite !

Je prends toute autre remarque de ce genre je ne demande que ca .

Merci .

C’est pas une page avec du flash ou java ? Possible que le plugin soit mal installé. Tu es en i586 ou x86_64 ?

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)