Probleme de compilateur... mais qui faut-il croire .....
34 réponses
Irsla
Voila j'ai un code qui semble correct seulement voila
Visual c++ 6.0 ( oui je sais c'est du C et non du cpp mais bon il devrait le
comprendre vu que le fichier est un .c) le compile sans erreur mais provoque
une erreur a l'execution ("la memoire ne peut etre written")
Dev_c++ 4 (en projet C et non C++) me le compile parfaitement et je n'ai
aucun pb a l'execution
et enfin
gcc sur un Freebsd avec juste un -o ( desole je ne suis pas un grand
habituer des unix\linux ) me sort un seg fault...
donc qui croire ...
je vous colle ci contre le code :
char *my_strcpy(char *dest,const char *src)
{
int i;
i = 0;
while (src[i])
{
//bien evidement c la que VC++ me dis que ca foire ....
dest[i] = src[i];
i++;
}
dest[i+1]='\0';
return (dest);
}
int my_printf(char *toprint)
{
int j=0;
for (j=0;toprint[j];j++)
{
}
_write(1,toprint,j);
return 0;
}
int main(void)
{
char *tmp;
char *sortie;
int j=0;
tmp = "HELLO WORLD !";
//c'est ici que je copie ce que contient tmp dans sortie
sortie = my_strcpy(sortie,tmp);
//puis j'impirme sortie ;)
my_printf(sortie);
return 0;
}
voila j'avoue que je ne sais qui croire en esperant que c'est un pb de
compilateur est pas de code ( ni des 2 a la fois ;) )
Merci d'avance
--
Irsla
--------------------------------------------------------------------
Une visite fait toujours plaisir, si ce n'est a l'arrivée c'est au départ ;)
--------------------------------------------------------------------
Tu veux dire que tu n'as pas le droit à malloc ? Parce que c'est quoi exactement l'énoncé de ton exercice, juste faire un équivalent de strcpy (dans ce cas là, oui tu n'as pas besoin de malloc mais tu peux quand même l'utiliser pour tester ton code) ?
C'est marrant, ce genre d'exercices me rappelle une certaine école d'informatique parisienne où l'on a l'habitude de donner se genre de petits programmes à écrire en cette période de l'année... :-)
Tu veux dire que tu n'as pas le droit à malloc ? Parce que c'est quoi
exactement l'énoncé de ton exercice, juste faire un équivalent de
strcpy (dans ce cas là, oui tu n'as pas besoin de malloc mais tu peux
quand même l'utiliser pour tester ton code) ?
C'est marrant, ce genre d'exercices me rappelle une certaine école
d'informatique parisienne où l'on a l'habitude de donner se genre de
petits programmes à écrire en cette période de l'année... :-)
Tu veux dire que tu n'as pas le droit à malloc ? Parce que c'est quoi exactement l'énoncé de ton exercice, juste faire un équivalent de strcpy (dans ce cas là, oui tu n'as pas besoin de malloc mais tu peux quand même l'utiliser pour tester ton code) ?
C'est marrant, ce genre d'exercices me rappelle une certaine école d'informatique parisienne où l'on a l'habitude de donner se genre de petits programmes à écrire en cette période de l'année... :-)
Bertrand Mollinier Toublet
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', "Irsla" <whowen99~~ wrote:
erreur mais provoque une erreur a l'execution ("la memoire ne peut etre written")
Du mélange français/anglais dans le texte? Etonnant...
C'est pourtant vrai !
habituer des unixlinux ) me sort un seg fault... donc qui croire ...
Typique d'un "Undefined Behaviour" (UB)
Du melange francais/anglais dans le texte ? Etonnant
:-) :-) :-)
-- Bertrand Mollinier Toublet Facetieux...
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', "Irsla" <whowen99~~no-spam@hotmail.com> wrote:
erreur mais provoque une erreur a l'execution ("la memoire ne peut etre
written")
Du mélange français/anglais dans le texte? Etonnant...
C'est pourtant vrai !
habituer des unixlinux ) me sort un seg fault...
donc qui croire ...
Typique d'un "Undefined Behaviour" (UB)
Du melange francais/anglais dans le texte ? Etonnant
Tu veux dire que tu n'as pas le droit à malloc ? Parce que c'est quoi exactement l'énoncé de ton exercice, juste faire un équivalent de strcpy (dans ce cas là, oui tu n'as pas besoin de malloc mais tu peux quand même l'utiliser pour tester ton code) ?
C'est marrant, ce genre d'exercices me rappelle une certaine école d'informatique parisienne où l'on a l'habitude de donner se genre de petits programmes à écrire en cette période de l'année... :-)
gagner je l'avoue c bien pour cette ecole la , on me l'a pas encore demander, vu que je l'ai pas encore integré , et comme je me faisais chier je l'ai fais , a vrai dire , mon code marche parfaitement ( vous n'avez pas vu la version finale ) c t jsute par rapport a vc++ que ca mardais ;) lol
-- Irsla -------------------------------------------------------------------- Une visite fait toujours plaisir, si ce n'est a l'arrivée c'est au départ ;) --------------------------------------------------------------------
"DG" <dany42NOSPAM@free.fr> a écrit dans le message de
news:86u16wx5r0.fsf@macphisto.homeunix.org...
Tu veux dire que tu n'as pas le droit à malloc ? Parce que c'est quoi
exactement l'énoncé de ton exercice, juste faire un équivalent de
strcpy (dans ce cas là, oui tu n'as pas besoin de malloc mais tu peux
quand même l'utiliser pour tester ton code) ?
C'est marrant, ce genre d'exercices me rappelle une certaine école
d'informatique parisienne où l'on a l'habitude de donner se genre de
petits programmes à écrire en cette période de l'année... :-)
gagner je l'avoue c bien pour cette ecole la , on me l'a pas encore
demander, vu que je l'ai pas encore integré , et comme je me faisais chier
je l'ai fais , a vrai dire , mon code marche parfaitement ( vous n'avez pas
vu la version finale ) c t jsute par rapport a vc++ que ca mardais ;)
lol
--
Irsla
--------------------------------------------------------------------
Une visite fait toujours plaisir, si ce n'est a l'arrivée c'est au départ ;)
--------------------------------------------------------------------
Tu veux dire que tu n'as pas le droit à malloc ? Parce que c'est quoi exactement l'énoncé de ton exercice, juste faire un équivalent de strcpy (dans ce cas là, oui tu n'as pas besoin de malloc mais tu peux quand même l'utiliser pour tester ton code) ?
C'est marrant, ce genre d'exercices me rappelle une certaine école d'informatique parisienne où l'on a l'habitude de donner se genre de petits programmes à écrire en cette période de l'année... :-)
gagner je l'avoue c bien pour cette ecole la , on me l'a pas encore demander, vu que je l'ai pas encore integré , et comme je me faisais chier je l'ai fais , a vrai dire , mon code marche parfaitement ( vous n'avez pas vu la version finale ) c t jsute par rapport a vc++ que ca mardais ;) lol
-- Irsla -------------------------------------------------------------------- Une visite fait toujours plaisir, si ce n'est a l'arrivée c'est au départ ;) --------------------------------------------------------------------
Stephane Legras-Decussy
"Irsla" <whowen99~~ a écrit dans le message news: bl6v18$8ik$
super et si un user particulierement chiant me donne une string a BIG_ENOUGH+1 caracteres ? D'ou l'utilisation de pointeurs ;)
comment fais tu pour réserver de la memoire sans tableau et sans malloc ?
"Irsla" <whowen99~~no-spam@hotmail.com> a écrit dans le message news:
bl6v18$8ik$1@news-reader5.wanadoo.fr...
super et si un user particulierement chiant me donne une string a
BIG_ENOUGH+1 caracteres ?
D'ou l'utilisation de pointeurs ;)
comment fais tu pour réserver de la memoire
sans tableau et sans malloc ?
"Irsla" <whowen99~~ a écrit dans le message news: bl6v18$8ik$
super et si un user particulierement chiant me donne une string a BIG_ENOUGH+1 caracteres ? D'ou l'utilisation de pointeurs ;)
comment fais tu pour réserver de la memoire sans tableau et sans malloc ?
Emmanuel Delahaye
In 'fr.comp.lang.c', "Irsla" <whowen99~~ wrote:
"Emmanuel Delahaye" a écrit dans le message de news:
In 'fr.comp.lang.c', "Irsla" <whowen99~~ wrote:
Voilà ton UB. Tu devrais avoir un warning du genre 'utilisation d'une variable non initialisée'.
exacte je l'ai
Et ça ne t'interpelle pas plus que ça?
exact je l'ai dans vc++ mais devcpp et gcc le compile parfaitement sans me signaler de warning et surtout l'execute parfaitement
Il faur revoir le reglage de tes compilateurs. Il y a des options à activer.
Pour gcc (dev-c++), le minimum est :
-W -Wall -O2
Merci sauf que c'est VC++ qui me pose pb et pas les 2 autres ;)
Alors level 4.
main.c:30: warning: `sortie' might be used uninitialized in this function
bien pour la conclusion d'une eventuelle solution malheuresement je n'ai aps le droit d'utiliser malloc ;)
Un tableau fera l'affaire.
un tableau dynamique ? la j'avoue que je ne sais pas faire autrement qu'avec des pointeurs
Pourquoi dynamique? Un tableau simple est suffisant
char a[BIG_ENOUGH];
super et si un user particulierement chiant me donne une string a BIG_ENOUGH+1 caracteres ?
A toi de la couper. Tu connais la taille de destination, tu peux donc arréter la copie quand c'est plein. Sans malloc()/realloc(), il n'y a pas d'alternative.
C'est pas moi qui t'interdit l'utilisation de malloc(). Commence déjà de faire un programme qui fonctionne dans la majorité des cas.
D'ou l'utilisation de pointeurs ;)
Et tu comptes l'initialiser comment, le pointeur? On utilise pas un pointeur comme ça au hasard. Un pointeur n'est pas magique. Il faut l'initialiser avec l'adresse d'un bloc dont on connait la taille et la validité.
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', "Irsla" <whowen99~~no-spam@hotmail.com> wrote:
"Emmanuel Delahaye" <emdelYOURBRA@noos.fr> a écrit dans le message de
news:Xns9404A9B01DCC9hsnoservernet@130.133.1.4...
In 'fr.comp.lang.c', "Irsla" <whowen99~~no-spam@hotmail.com> wrote:
Voilà ton UB. Tu devrais avoir un warning du genre 'utilisation
d'une variable non initialisée'.
exacte je l'ai
Et ça ne t'interpelle pas plus que ça?
exact je l'ai dans vc++ mais devcpp et gcc le compile parfaitement sans
me signaler de warning et surtout l'execute parfaitement
Il faur revoir le reglage de tes compilateurs. Il y a des options à
activer.
Pour gcc (dev-c++), le minimum est :
-W -Wall -O2
Merci sauf que c'est VC++ qui me pose pb et pas les 2 autres ;)
Alors level 4.
main.c:30: warning: `sortie' might be used uninitialized in this
function
bien pour la conclusion d'une eventuelle solution malheuresement je
n'ai aps le droit d'utiliser malloc ;)
Un tableau fera l'affaire.
un tableau dynamique ? la j'avoue que je ne sais pas faire autrement
qu'avec des pointeurs
Pourquoi dynamique? Un tableau simple est suffisant
char a[BIG_ENOUGH];
super et si un user particulierement chiant me donne une string a
BIG_ENOUGH+1 caracteres ?
A toi de la couper. Tu connais la taille de destination, tu peux donc arréter
la copie quand c'est plein. Sans malloc()/realloc(), il n'y a pas
d'alternative.
C'est pas moi qui t'interdit l'utilisation de malloc(). Commence déjà de
faire un programme qui fonctionne dans la majorité des cas.
D'ou l'utilisation de pointeurs ;)
Et tu comptes l'initialiser comment, le pointeur? On utilise pas un pointeur
comme ça au hasard. Un pointeur n'est pas magique. Il faut l'initialiser avec
l'adresse d'un bloc dont on connait la taille et la validité.
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
"Emmanuel Delahaye" a écrit dans le message de news:
In 'fr.comp.lang.c', "Irsla" <whowen99~~ wrote:
Voilà ton UB. Tu devrais avoir un warning du genre 'utilisation d'une variable non initialisée'.
exacte je l'ai
Et ça ne t'interpelle pas plus que ça?
exact je l'ai dans vc++ mais devcpp et gcc le compile parfaitement sans me signaler de warning et surtout l'execute parfaitement
Il faur revoir le reglage de tes compilateurs. Il y a des options à activer.
Pour gcc (dev-c++), le minimum est :
-W -Wall -O2
Merci sauf que c'est VC++ qui me pose pb et pas les 2 autres ;)
Alors level 4.
main.c:30: warning: `sortie' might be used uninitialized in this function
bien pour la conclusion d'une eventuelle solution malheuresement je n'ai aps le droit d'utiliser malloc ;)
Un tableau fera l'affaire.
un tableau dynamique ? la j'avoue que je ne sais pas faire autrement qu'avec des pointeurs
Pourquoi dynamique? Un tableau simple est suffisant
char a[BIG_ENOUGH];
super et si un user particulierement chiant me donne une string a BIG_ENOUGH+1 caracteres ?
A toi de la couper. Tu connais la taille de destination, tu peux donc arréter la copie quand c'est plein. Sans malloc()/realloc(), il n'y a pas d'alternative.
C'est pas moi qui t'interdit l'utilisation de malloc(). Commence déjà de faire un programme qui fonctionne dans la majorité des cas.
D'ou l'utilisation de pointeurs ;)
Et tu comptes l'initialiser comment, le pointeur? On utilise pas un pointeur comme ça au hasard. Un pointeur n'est pas magique. Il faut l'initialiser avec l'adresse d'un bloc dont on connait la taille et la validité.
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Emmanuel Delahaye
In 'fr.comp.lang.c', Bertrand Mollinier Toublet wrote:
erreur mais provoque une erreur a l'execution ("la memoire ne peut etre written")
Du mélange français/anglais dans le texte? Etonnant...
C'est pourtant vrai !
habituer des unixlinux ) me sort un seg fault... donc qui croire ...
Typique d'un "Undefined Behaviour" (UB)
Entre guillemets, quand même...
Du melange francais/anglais dans le texte ? Etonnant
:-) :-) :-)
J'ai pas la prétention d'écrire de la doc ou des messages d'erreur...
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Bertrand Mollinier Toublet
<bertrand.mollinierNOSPAMtoublet@enst-bretagne.fr> wrote:
erreur mais provoque une erreur a l'execution ("la memoire ne peut etre
written")
Du mélange français/anglais dans le texte? Etonnant...
C'est pourtant vrai !
habituer des unixlinux ) me sort un seg fault...
donc qui croire ...
Typique d'un "Undefined Behaviour" (UB)
Entre guillemets, quand même...
Du melange francais/anglais dans le texte ? Etonnant
:-) :-) :-)
J'ai pas la prétention d'écrire de la doc ou des messages d'erreur...
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Si je m'entete a vous prendre la tete avec ce probleme c'est que bien qu'en ayant essayant de l'initialiser il continu a foirer ;)
(essaye de te relire, j'ai du mal à compredre ce que tu écris)
Sais pas. Montre le code qui ne fonctionne pas, avec le pointeur initialisé.
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Emmanuel Delahaye
In 'fr.comp.lang.c', "Irsla" <whowen99~~ wrote:
gagner je l'avoue c bien pour cette ecole la , on me l'a pas encore demander, vu que je l'ai pas encore integré , et comme je me faisais chier je l'ai fais , a vrai dire , mon code marche parfaitement ( vous n'avez pas vu la version finale ) c t jsute par rapport a vc++ que ca mardais ;)
J'aimerais bien la voir la 'version finale'.
Et puis, puisque tu es encore à l'école, profites en pour soigner ton orthographe. Tu es à la limite de l'incompréhensible...
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', "Irsla" <whowen99~~no-spam@hotmail.com> wrote:
gagner je l'avoue c bien pour cette ecole la , on me l'a pas encore
demander, vu que je l'ai pas encore integré , et comme je me faisais chier
je l'ai fais , a vrai dire , mon code marche parfaitement ( vous n'avez pas
vu la version finale ) c t jsute par rapport a vc++ que ca mardais ;)
J'aimerais bien la voir la 'version finale'.
Et puis, puisque tu es encore à l'école, profites en pour soigner ton
orthographe. Tu es à la limite de l'incompréhensible...
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
gagner je l'avoue c bien pour cette ecole la , on me l'a pas encore demander, vu que je l'ai pas encore integré , et comme je me faisais chier je l'ai fais , a vrai dire , mon code marche parfaitement ( vous n'avez pas vu la version finale ) c t jsute par rapport a vc++ que ca mardais ;)
J'aimerais bien la voir la 'version finale'.
Et puis, puisque tu es encore à l'école, profites en pour soigner ton orthographe. Tu es à la limite de l'incompréhensible...
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Emmanuel Delahaye
In 'fr.comp.lang.c', Emmanuel Delahaye wrote:
(essaye de te relire, j'ai du mal à compredre ce que tu écris)
Moi aussi!
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Emmanuel Delahaye <emdelYOURBRA@noos.fr> wrote:
(essaye de te relire, j'ai du mal à compredre ce que tu écris)
Moi aussi!
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/