online faq recherche accueil
 

Il y a 165 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
 Page :  1  2
Page Précédente 
Auteur
 Sujet :

Pb programmation C

 
n°4657341
.:Conan:.
Ouueeendaaaan !!
Posté le 31-10-2006 à 16:16:19  profilanswer
 

Salut tout le monde,
Comme l'indique le sujet, j'ai un petit souci avec le C.
Je n'arrive pas à "faire fonctionner" la fonction free().
Par exemple :

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void){
  4. char* pc = malloc(sizeof(char));
  5. pc = "test";
  6. printf("%s",pc);
  7. free(pc);
  8. return 1;
  9. }


 
J'arrive à compiler ce code mais à l'exécution j'ai une erreur glibc detected free() : invalid pointer .....
J'ai testé sur cygwin, ubuntu et ubuntu 64-bit.
J'ai farfouillé un peu sur le net, le problème viendrait peut être du fait que j'ai un processeur amd64 (un pote compile et exécute bien, il n'a pas ce proc)
 
Voilà alors si quelqu'un avait une idée d'où cela provient et encore mieux comment le résoudre je suis preneur :)
 
Merci.

n°4657342
Lord Kellm​ar
Einheri
Posté le 31-10-2006 à 16:20:58  profilanswer
 

Les Librairies ne sont pas compatibles 64 bits ? :hmm: ?
 
Recompile le compilateur :o
 
(en fait, j'en sais rien, mais ça peut se tenter :D)

n°4657353
aGaB
< Muzik Addict >
Posté le 31-10-2006 à 19:36:14  profilanswer
 

Ben deja ton malloc il est bizarre. Tu reserves de la place pour un caractere puis tu lui donnes pour valeur une chaine de 4 caracteres + 1 (le caractere de fin de chaine), donc je pense que le probleme se trouve plutot de ce cote la ;)

n°4657356
DooMeeR
DooM shall never die.
Posté le 31-10-2006 à 20:10:39  profilanswer
 

Moi je dirais que le problème, c'est que tu fais :
 

Code :
  1. pc = malloc // pc pointe vers un nouvel emplacement mémoire
  2. pc = "test" // pc pointe sur "test" (l'emplacement alloué par malloc est oublié, "test" est stocké en dur dans ton programme)
  3. free(pc) // tu libères non pas le truc alloué par malloc mais l'emplacement dans le programme de la chaîne test


 
Utilise strcopy au lieu de "=" pour copier la chaîne "test" dans pc.
 
Pour être plus clair :
Quand tu écris "test" dans ton code source, ça crée la chaîne "test" à la compilation, quelque part dans le programme qui sera ensuite mis en mémoire à l'exécution. Quand tu fais <pc = "test">, tu ne copies pas la chaine test : tu recopies juste son adresse dans pc, qui est un pointeur.


Message édité par DooMeeR le 31-10-2006 à 20:15:47
n°4657366
kypper_667
Im'avalounède, lol.
Posté le 31-10-2006 à 22:19:08  profilanswer
 

Et faire un free d'une variable locale (dans ce cas, le pointeur vers le début de la chaîne test) est mal, très mal.
 
Booh. Pas bien. Privé de dessert.
 
Bon si j'ai bien compris, tu veux juste créer une nouvelle chaîne ?
 
#define LENGTH_STRING 4;
 
*char my_string;
 
my_string = malloc((LENGTH_STRING + 1) * sizeof (char));
if (my_string == NULL)
return (0);
else
{
printf("%s\n", my_string);
free(my_string);
return (1);
}
 
'Me souvient plus comment on fait pour copier directement "test" dans la chaîne sans utiliser strcopy (qui est une solution bien moche :p)
Rah, dire que j'étais presque en vacances aujourd'hui, vous abusez


---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°4657371
MetalGear
bêta testeur attitude
Profil : Modérateur
Posté le 01-11-2006 à 08:15:16  profilanswer
 

Je "plusoie" ce qui a été indiqué plus haut, et ferait remarquer que se tromper entre la taille allouée, la notion d'adresse pointé, etc. faire un joli mélange dans tout ça, c'est exactement ce qu'il faut faire pour après exécuter du code en mémoire qui n'est pas supposé l'être... bon nombre de virus / malware font probablement appel aux négligences des programmeurs pour aller loger le code viral théoriquement destiné à des commentaires de fichiers sonores, images ou vidéos...
Bref à éviter à tout prix !


---------------
        MetalGear   aka   MetalGearLiquid
                >> Undead polyglotte <<
[:metalgear:9]       [:metalgear:5]      [:metalgear:8]       [:metalgear:7]
À lire absolument : FAQ et Aide du forum MD.net * FAQ Diablo2 * FAQ Warcraft3 * FAQ WoW * FAQ StarCraft II * Règles du forum dédié à StarCraft II
n°4657375
.:Conan:.
Ouueeendaaaan !!
Posté le 01-11-2006 à 14:25:32  profilanswer
 

hum....ça marche bien avec strcpy() :D
Je débute en C donc j'dois en faire plus d'une des énormités :p
Merci à vous en tout cas :)

n°4657387
kypper_667
Im'avalounède, lol.
Posté le 01-11-2006 à 15:36:18  profilanswer
 

(Si jamais malloc() te retourne un pointeur nul, ça veut dire que tu n'as plus de mémoire pour le process' ;) oublie pas de faire ce test)


---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°4657388
Lord Kellm​ar
Einheri
Posté le 01-11-2006 à 15:57:46  profilanswer
 

(toujours faire des vérifs aux appels mémoire/system :p)

n°4657396
noyedansle​porto
éliminateur de taxator
Posté le 01-11-2006 à 19:55:34  profilanswer
 

kypper_667 a écrit :

(Si jamais malloc() te retourne un pointeur nul, ça veut dire que tu n'as plus de mémoire pour le process' ;) oublie pas de faire ce test)


pour créer une chaine de 4 caracteres a priori son pc doit suffire :p


---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657397
Lord Kellm​ar
Einheri
Posté le 01-11-2006 à 19:56:44  profilanswer
 

(à moins de faire le con, genre un pote qui avait un prog qui faisait un malloc(..) suivit d'un fork()... :D...)

n°4657427
kypper_667
Im'avalounède, lol.
Posté le 02-11-2006 à 00:07:06  profilanswer
 

noyedansleporto a écrit :

pour créer une chaine de 4 caracteres a priori son pc doit suffire :p


Et quand tu fais cette opération des milliers de fois ? M'enfin c'est vous qui choisissez de faire du code unsafe :p


Message édité par kypper_667 le 02-11-2006 à 00:07:19

---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°4657443
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 10:05:24  profilanswer
 

sur un chtit programme comme ça c'est pas forcément utile maintenant vu son niveau en C les fork c'est ptet pas pour tout de suite :D maintenant pour la suite c'est sur qu'il faudra y penser ;)

n°4657478
Flolou
Less is More
Posté le 02-11-2006 à 16:06:15  profilanswer
 

P'tite question d'un noob que je suis :
c'est quoi la différence entre i++ et ++i ?


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657479
DooMeeR
DooM shall never die.
Posté le 02-11-2006 à 16:07:33  profilanswer
 

i++ incrémente la variable i, et renvoie la valeur de i avant incrémentation.
++i incrémente la variable i, et renvoie la valeur de i après incrémentation.

n°4657480
Flolou
Less is More
Posté le 02-11-2006 à 16:09:46  profilanswer
 

Concrètement quelle différence on arrive bien dans les deux cas à i+1 nan?


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657481
DooMeeR
DooM shall never die.
Posté le 02-11-2006 à 16:20:01  profilanswer
 

Oui mais la valeur renvoyée n'est pas la même.
 
Car, oui, il faut le savoir, i++ et ++i renvoient une valeur, ce qui est très sale mais rigolo.

Code :
  1. i = 0;
  2. a = i++;
  3. // a vaut 0, i vaut 1
  4. a = ++i;
  5. // a vaut 2, i vaut 2.


Message édité par DooMeeR le 02-11-2006 à 16:20:09
n°4657482
Flolou
Less is More
Posté le 02-11-2006 à 16:27:49  profilanswer
 

Donc dans le a=i++ seul i change et pas dans le a=++i ...
 
Donc si par exemple j'fais X fois de suite a=i++ a aura pas bougé?


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657486
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 17:02:35  profilanswer
 

si... mais pas de la meme maniere
 
# a = i++;
# // a vaut 0, i vaut 1  
# a = i++;
# // a vaut 1, i vaut 2  
 
i est incrémenté APRES l'opération d'affectation et pas avant donc on attribue la valeur de i à a avant que le compteur soit incrémenté en langage plus soutenu ça se traduit par
 
a =i++; est equivalent à
# a = i;
# i= i+1;
 
alors que a=++i; equivaut à
# i = i+1;
# a = i;


---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657488
Flolou
Less is More
Posté le 02-11-2006 à 17:07:01  profilanswer
 

Donc si par exemple je fait un for(a=i++;; ){blablabla... il me fera les instructions du for avec a=i puis incrémente à la fin alors qu'avec un ++i il incrémente avant et donc fait les instruc avec a=(i+1)?

Message cité 1 fois
Message édité par Flolou le 02-11-2006 à 17:07:18

---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657489
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 17:17:00  profilanswer
 

la faudrait regarder je ne suis pas sur que ce soit a la fin de la boucle for ou juste apres le test
 
edit sinon pour le principe du ++i et du i++ tu as compris il me semble :p


Message édité par noyedansleporto le 02-11-2006 à 17:18:02

---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657490
Lord Kellm​ar
Einheri
Posté le 02-11-2006 à 17:20:07  profilanswer
 

C'est un peu con de mettre un "a = i++" dans la première partie du "for", mis a part pour gagner une ligne de code qui ne changera rien au niveau du code machine ;)

n°4657501
kypper_667
Im'avalounède, lol.
Posté le 02-11-2006 à 17:59:06  profilanswer
 

Flolou a écrit :

Donc si par exemple je fait un for(a=i++;; ){blablabla... il me fera les instructions du for avec a=i puis incrémente à la fin alors qu'avec un ++i il incrémente avant et donc fait les instruc avec a=(i+1)?


Oui.
 
int compteur = 0;
 
for(; compteur < 9; compteur++)
 printf("%i\n" );
 
Affichage :
0
1
2
3
4
5
6
7
8
9
 
Voilà voilà.


---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°4657502
Flolou
Less is More
Posté le 02-11-2006 à 18:00:21  profilanswer
 

Et avec ++compteur à la place? :ack:


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657505
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 18:09:32  profilanswer
 

tu commences l'affichage a 1 et tu t'arretes a 9...


Message édité par noyedansleporto le 02-11-2006 à 18:15:40

---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657506
kypper_667
Im'avalounède, lol.
Posté le 02-11-2006 à 18:10:41  profilanswer
 

T'aurais pu réfléchir Flolou : /


---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°4657507
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 18:12:33  profilanswer
 

au fait sur ton affichage t'es sur qu'il affiche 9?


---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657508
Lord Kellm​ar
Einheri
Posté le 02-11-2006 à 18:14:00  profilanswer
 

Il ne devrait pas :o

n°4657509
Flolou
Less is More
Posté le 02-11-2006 à 18:14:49  profilanswer
 

Bah il incrémente après la condition donc le dernier printf affiche 9 j'ai bon?


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657510
Lord Kellm​ar
Einheri
Posté le 02-11-2006 à 18:17:22  profilanswer
 

Flolou a écrit :

Bah il incrémente après la condition donc le dernier printf affiche 9 j'ai bon?


Maintenant imagine que tu déclares un tableau int[tab_size] et que ta boucle for(int i = 0; i < tab_size; i++) atteigne l'élément tableau[tab_size]
 
BOUM.

n°4657511
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 18:18:56  profilanswer
 

me semble plutot qu'il incrémente le compteur en sortie de boucle et non pas a la fin du test ce qui ferait du 0 à 8 pour i ++ et 1 à 9 pour du ++i à vérifier j'ai pas fait de C depuis 3 ans :p


---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657512
Flolou
Less is More
Posté le 02-11-2006 à 18:19:39  profilanswer
 

Mouais c'est pour ça qu'il foirait moi 'programme' de tri de tableau ^^
 
edit: @noyedansleporto: nan c'est Kypper qu'a raison, ya 2-3semaines en td d'info quand on faisait un boucle for(i=0;i<=10;i++)printf("%d\n",i); le compteur allait bien jusqu'à 11 :ack:

Message cité 1 fois
Message édité par Flolou le 02-11-2006 à 18:22:12

---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657513
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 18:21:25  profilanswer
 

généralement ces prog ça plante parceque tu sais pas compter a partir de 0 mais de 1 :p


---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657514
Lord Kellm​ar
Einheri
Posté le 02-11-2006 à 18:22:16  profilanswer
 

noyedansleporto a écrit :

généralement ces prog ça plante parceque tu sais pas compter a partir de 0 mais de 1 :p

Les vrais g€€ks comptent à partir de 0 (et comptent en hexaD :o)

n°4657515
Flolou
Less is More
Posté le 02-11-2006 à 18:23:47  profilanswer
 

Bah nan il marchait superbien c'est juste qu'avec un ++i c'est moins complexe qu'avec un i++... va savoirpourquoi...


---------------
 " Vive la sagesse de Salomon: Boire de bon vin, se gorger de mets délicats, se rouler sur de jolies femmes; se reposer dans des lits bien mollets. Excepté cela,le reste n'est que vanité."  Le Neveu de Rameau, Diderot
[Ma liste de trade] :|: [mileγ Factorγ] :|: [Wasteland...] :|: [Summe deus, fiat tua sancta volontas]
n°4657516
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 18:24:32  profilanswer
 

j'aimerais pas etre un geek... appeler sa copine machine.jpg ça me fouttrait le cafard :lol:
 
edit au temps pour moi enfin dans ce cas faut utiliser i-1 si tu mets du i++...


Message édité par noyedansleporto le 02-11-2006 à 18:27:37

---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657517
kypper_667
Im'avalounède, lol.
Posté le 02-11-2006 à 18:53:49  profilanswer
 

Ah je doute. Je crois que j'ai tort  [:kypper_667:5] La flemme de vérifier.


---------------
Posté le o3|11|2oo7 à 12|2o|46 par Shoggynou : Non mais Kypper depuis genre 6 mois il est passé d'un gars à très cool à Grubnatz :hmm: - Posté le 29-o8-2oo7 à 14|26|05 par Incubeee_ : Oui, mais pour moi tu seras toujours Arcueid :o - Posté le o4-12-2oo6 à 21|55|41 par Simulacre : Ne t'inquiète pas, je te défoncerai tôt ou tard. : ) - Posté le 13-o4-2oo6 à o1|o8|37 par Bellandy : Sinon tu habites chez tes parents ? - Posté le 31-12-2oo5 à 21|3o|37 par Loline : mais mais Kyppy, tu n'as pas une grande vie sexuelle :heink: - Posté le o5-o8-2oo4 à 17|47|18 par Zack : J'ai l'impression d'être le seul à pas vraiment connaître Kypper... o_O
n°4657532
noyedansle​porto
éliminateur de taxator
Posté le 02-11-2006 à 21:11:47  profilanswer
 

ai pas de compilo pour tester :D
 
mais dans tous les cas j'ai du mal a croire qu'avec ce test il puisse afficher de 0 à 9 inclus...


Message édité par noyedansleporto le 02-11-2006 à 21:12:21

---------------
Quand vous êtes poursuivis par un ours, le plus important n'est pas de courir plus vite que l'ours, mais de courir plus vite que votre camarade.
Proverbe Chinois
 
D2 c'est le mal Trade list de ZDM + Carou la vilaine modale :o
n°4657538
Olive
Dans le noir
Posté le 02-11-2006 à 21:44:32  profilanswer
 

kypper_667 a écrit :

Et faire un free d'une variable locale (dans ce cas, le pointeur vers le début de la chaîne test) est mal, très mal.
 
Booh. Pas bien. Privé de dessert.
 
Bon si j'ai bien compris, tu veux juste créer une nouvelle chaîne ?
 
#define LENGTH_STRING 4;    // fear le ;
 
*char my_string; // l'es beau ton pointeur  [:tantor:1]
 
my_string = malloc((LENGTH_STRING + 1) * sizeof (char)); // syntax error near ;. manque le cast du résultat en char * aussi
if (my_string == NULL)
return (0);
else
{
printf("%s\n", my_string);  // Utiliser printf sans en avoir l'usage c'est mal. autant utiliser strcpy ou strncpy qui est plus rapide
free(my_string);
return (1);
}
 
'Me souvient plus comment on fait pour copier directement "test" dans la chaîne sans utiliser strcopy (qui est une solution bien moche :p)
t'as pas 36 solutions (enfin si, si tu cherches les ennuis). strcpy est un bon moyen, memcpy aussi, ou encore strcpy_s ou équivalent non $soft
Rah, dire que j'étais presque en vacances aujourd'hui, vous abusez


 
Privé de dessert toi aussi :evil:

n°4657539
Lord Kellm​ar
Einheri
Posté le 02-11-2006 à 21:48:06  profilanswer
 

(StrNcpy est bon pour éviter des overflow un peu partout :o)

 Page :  1  2
Page Précédente 

Aller à :
Ajouter une réponse