sampiiii
Messages postés69Date d'inscriptionjeudi 19 février 2009StatutMembreDernière intervention 8 décembre 2010 11 févr. 2010 à 05:02
Bonjour , j'arrive meme pas a l'ouvrir avec DEV-C++ quelqu'un peut m'aider svp ^^ ?
cs_Tylos
Messages postés6Date d'inscriptiondimanche 13 janvier 2002StatutMembreDernière intervention27 janvier 2002 25 janv. 2002 à 09:51
Pas d'erreur de compilation mais erreur d'execution ! il se produit après la dernière requette concernant le cheats codes.
***Tylos***
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 24 déc. 2001 à 00:35
bah avrait dire moi non plus lol, mais j'avait ke ca sous la main quand g ecrit le code
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 23 déc. 2001 à 20:47
Moi j'ai une vieille RedHat 6.0 qui traine sur une machine.
Sinon j'ai essayé le code suivant qui explose aussi:
char *str;
strcpy(str, "toto");
enfin ca m'étonne pas de la mandrake
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 23 déc. 2001 à 20:41
et bien moi g ecrit compiler et executer mon code sous Linux Mandrake 8.1 et gcc/g++ 3.0
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 23 déc. 2001 à 18:55
J'ai essayé de compiler
char test[];
et
struct toto
{
char test[];
};
sous Linux et ca ne marche pas non plus
T'as quoi comme distrib ???
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 22 déc. 2001 à 10:31
a alors peut etre que cela vient de windows, peut etre qu'il y a une limitation quelque part avec windows
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 22 déc. 2001 à 10:07
Oui, ca ca marche :
char str[]="test";
Mais ca ca ne marche pas:
char str[];
Ni avec Vc++ ni avec G++ Win32
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 21 déc. 2001 à 17:17
en fait si tu veut je vais t'expliquer comment ca se passe en ANSI-C/ANSI-C++ avec char *var; et char var[]
en ANSI il n'est necessaire de faire une allocation memoire seulement lorsque tudeclare un pointeur char *var; si non il y a risque de plantage (mais a peutmarcher mais vaut mieux eviter) par contre si tudeclare un tablaux char var[]; et bien la il n'y a pas besoin de faire d'allocation.
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 21 déc. 2001 à 16:15
Oui ca fonctionne je t'est dit j'ai tester, dans un fichier, voila l code exacte:
#include
#include <string.h>
int main(void)
{
char *str;
strcpy(str, "azerty");
}
Puis apres pour compiler:
g++ test.cpp -o test
0 erreurs 0 warnnings
et lors de l'execution aucune erreur
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 déc. 2001 à 15:22
Ca marche
char* str;
strcpy(str, "azerty");
?????
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 21 déc. 2001 à 14:28
Oui biensur que cela fonctionne ;-)
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 déc. 2001 à 13:45
Mais tu es d'accord avec moi sur le fait qu'il manque une allocation mémoire dans ton code.
Bizarre que Linux ne fasse pas de segmentation fault-core dump là dessus, il en fait pour bcp d'autres.
Et si tu essayes ca ca marche:
char* str;
strcpy(str, "azerty");
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 21 déc. 2001 à 13:01
oups g faitune faute de frappe je voulait dire ANSI-C++ enfin je pense que vous l'auriez compris
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 21 déc. 2001 à 13:00
Bizar ton histoire, pas pour l'allocation, mais pour le plantage, car moij'utilise ncompilateur ANSI-X++ et avec ce compilateur 0 erreurs 0 warnning a la compilation et le code s'execute impecable.
Pour info je travail sous Linux avec gcc/g++.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 déc. 2001 à 12:40
En fait char *host et char host[] c'est exactement la même chose ...
J'ai essayé ton code avec Visual C++. Tout d'abord il compile pas à cause de la structure server (car il attends soit char *host, soit char host[ZZZ] et pas char host[]) et il plante ensuite sur le scanf() puisque tu utilises des pointeurs pour stocker des informations dedans sans allouer de mémoire.
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 21 déc. 2001 à 11:27
mince je viens de voir que j'ai dejas mis cela en char hostname[] mais moi je suis pas daccord qu'il ey st besoin d'allocation memoire pour que ca plante pas, car tel que c'est actuellement cela fonctionne sans planter
cs_Jo
Messages postés138Date d'inscriptionjeudi 24 août 2000StatutMembreDernière intervention 6 avril 2002 21 déc. 2001 à 11:25
non non cela ne plante mais c'est vrai que je devrait corriger cela pour modifier les char *hostname en char hostname[] et pareil pour le rcon_password, comme ca ca m'evitera de faire des allocation memoire :-p
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 déc. 2001 à 08:30
Dans ta structure server, tu déclares deux pointeurs vers une chaine de caractères (hostname et rcon_password). Le problème est que tu n'alloues jamais de mémoire pour mettre les chaines dedans; ca doit donc planter.
11 févr. 2010 à 05:02
25 janv. 2002 à 09:51
***Tylos***
24 déc. 2001 à 00:35
23 déc. 2001 à 20:47
Sinon j'ai essayé le code suivant qui explose aussi:
char *str;
strcpy(str, "toto");
enfin ca m'étonne pas de la mandrake
23 déc. 2001 à 20:41
23 déc. 2001 à 18:55
char test[];
et
struct toto
{
char test[];
};
sous Linux et ca ne marche pas non plus
T'as quoi comme distrib ???
22 déc. 2001 à 10:31
22 déc. 2001 à 10:07
char str[]="test";
Mais ca ca ne marche pas:
char str[];
Ni avec Vc++ ni avec G++ Win32
21 déc. 2001 à 17:17
en ANSI il n'est necessaire de faire une allocation memoire seulement lorsque tudeclare un pointeur char *var; si non il y a risque de plantage (mais a peutmarcher mais vaut mieux eviter) par contre si tudeclare un tablaux char var[]; et bien la il n'y a pas besoin de faire d'allocation.
21 déc. 2001 à 16:15
#include
#include <string.h>
int main(void)
{
char *str;
strcpy(str, "azerty");
}
Puis apres pour compiler:
g++ test.cpp -o test
0 erreurs 0 warnnings
et lors de l'execution aucune erreur
21 déc. 2001 à 15:22
char* str;
strcpy(str, "azerty");
?????
21 déc. 2001 à 14:28
21 déc. 2001 à 13:45
Bizarre que Linux ne fasse pas de segmentation fault-core dump là dessus, il en fait pour bcp d'autres.
Et si tu essayes ca ca marche:
char* str;
strcpy(str, "azerty");
21 déc. 2001 à 13:01
21 déc. 2001 à 13:00
Pour info je travail sous Linux avec gcc/g++.
21 déc. 2001 à 12:40
J'ai essayé ton code avec Visual C++. Tout d'abord il compile pas à cause de la structure server (car il attends soit char *host, soit char host[ZZZ] et pas char host[]) et il plante ensuite sur le scanf() puisque tu utilises des pointeurs pour stocker des informations dedans sans allouer de mémoire.
Tu peux essayer ce code si tu veux :
#include
#include <stdio.h>
struct sTest
{
char *str;
};
void main()
{
struct sTest structTest;
cout<<"Test: "<<endl;
scanf("%s", structTest.str);
}
21 déc. 2001 à 11:27
21 déc. 2001 à 11:25
21 déc. 2001 à 08:30