Vous n'êtes pas identifié.
tc3 me fout un warning pour ce bout de code :
char map[5][6]= { 1,2,0,0,0,1, 1,0,0,2,2,2, 1,1,1,1,1,1, 2,2,2,2,0,0, 2,0,1,1,0,2 }; void fctn(char* mp) { unsigned int offst=9; _SI=(int) mp+offst; } void main() { fctn(map); // TC3 : "suspicious pointer conversion"" }
le warning est toujours affiché si je met fctn(&map[0]);
donc voila que faut t'il que je change pour ne plus avoir ce warning (en sachant que je ne veux pas du void* a la place de char* )
----------------------------------------------------------------------
sinon j'ai remarqué que tous mes programmes contenaient le nom de chaque fonctions et de chaque variables utilisées dasn le programme, quelle est l'options que je dois changer dasn tc3 pour ne plus avoir ca?
Hors ligne
ben en fait j'ai l'impression que ta map c du char** et pas du char*
donc ta fctn est pas bien déclarée...
Hors ligne
arf ouais peut etre...
j'avais pas pensé a ca je vais essayer
Hors ligne
bin non c pas ca...
dommage l'idée etait bonne
et puis tc3 est con aussi...pourquoi foutre un warning alors que ca marche tres bien
Hors ligne
quand tu appelle ta fonction il sait pas si l'argument est un pointeur ou un nombre
donc il met un warning
enfin je crois j ne m'y connais pas trop
moi aussi ca m'est arrivé , j'ai ignoré les warnings et ca marche
Hors ligne
je crois pas trop a ton truc...
le warning est toujours affiché si je met fctn(&map[0]);
la ca m'etonnerait que tc3 pense que c toujours un nombre voit tu
Hors ligne
Non le problème c'était bien que 'map' n'est pas un char* mais bien un char**
Hors ligne
si tu vx pas du warning écrit : fctn((char*)map);
Hors ligne
arf merci
sinon pour les noms de fonctions et de variable dans mes progs ?
Hors ligne
il faut mettre ça si tu veux qu'il n'y ait aucun warning:
char map[5][6]= { {1,2,0,0,0,1}, {1,0,0,2,2,2}, {1,1,1,1,1,1}, {2,2,2,2,0,0}, {2,0,1,1,0,2} }; void fctn(char mp[][6]) { unsigned int offst=9; _SI=(int) mp+offst; } void main() { fctn(map); }
Hors ligne
euh 2072, je crois que des lors, comme y' a pas transfert de l' adresse, la map est copié.
Donc pour une petite map ça va, pour les maps plus grandes c' est plus trop ça.
Moi dans ce cas je mettrais:
fctn(*map);
Hors ligne
euh 2072, je crois que des lors, comme y' a pas transfert de l' adresse, la map est copié.
Non pas du tout: c'est juste une autre facon d'indiquer au compilateur que ce qui est passé en argument est une matrice à 6 colonnes, pour qu'il n'y ait pas d'ambiguités lorsqu'on fait mp[3][2] dans la fonction par exemple, ca sera comme écrire mp[3*6+2].
Seulement ca impose un nbre fixe de colonnes, donc l'intérêt est très limité
Hors ligne
oué pour une fonction de dblib censé afficher une map de n'importe quelle taille, ca n'ira pas c sur
Hors ligne
bija, fo jms ignorer un warning !!!
fo tjs essayer de comprendre pkoi il nous sort ca le compilo !
Hors ligne
"fo jamais ignorer un warning"
..hum..hum...
"Warning c:ctcincludecasio2.h 385: Condition is always false in function set_time
"....
Hors ligne
bin oué...
dasn une librairie, ca le fait pas trop d'afficher un warning a chaque compilation...
c bien ce que je veux eviter
Hors ligne
bah je m'étais dit que TC avait pas compri que je mettais un pointeur en paramétre
et ca marchait tres bien alors ...
Hors ligne
c'est vrai que d'avoir un nombre de lignes et colonne limité c'est pas top, mais à ce moment là il ne faut pas déclaré ta map comme tu l'a fait, t'a qu'à juste mettre:
char map[]= //[5][6] { 1,2,0,0,0,1, 1,0,0,2,2,2, 1,1,1,1,1,1, 2,2,2,2,0,0, 2,0,1,1,0,2 };
et la tu n'auras plus de warning. Car sinon tu dis au compilateur de vérifier pour toi que tu transmet ton tableau que à des fonctions qui savent le traiter et que tu n'nessayes pas de le déclarer ou de l'adresser en dehors de ses limites... d'où la nécésité de déclarer la fonction correctement. Ou sinon tu mets un cast à chaque appelle de ta fonction comme te l'a dit dada66
"Warning c:ctcincludecasio2.h 385: Condition is always false in function set_time
ça ça veut dire que t'as mis une condition (dans un for, un if etc..) qui est toujours fausse, c'est donc pas normale du tout.
Quand on dévelope un programme il faut toujours activer tous les warnings et il ne doit y en avoir aucun sinon t'auras pleins de bugs et tu accusera le compilo.
Hors ligne