begin process at 2012 05 30 11:57:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

strcpy et strcpy_s


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

strcpy et strcpy_s

dimanche 11 mars 2007 à 21:09:06 | strcpy et strcpy_s

lektrosonic

bonjour, j'ai ramene mon projet sous visual studio 2005 pro (de dev-cpp) sous dev-cpp j utilisait strcpy..aucun probleme.. alors que la premiere fois que j'ai compile sous vs, un warning aparait comme quoi strcpy n est pas tres sur et que je doi utiliser strycpy_s je le remplace avec strycpy_s (qui prend un argument de plus, celui de la taille maximale de la chaine de destination) j ecrit alors: strcpy_s(lang[i],sizeof(lang[i]),temp_buffer); et bam ca plante lors de cette..(pas d erreur de compilation, ca plante quand j execute l exe) une suggestion peut etre? doi-je juste laisser strcpy et ignorer le warning ?
lundi 12 mars 2007 à 01:01:28 | Re : strcpy et strcpy_s

racpp

Administrateur CodeS-SourceS
Salut,
Tu peux bien sûr ignorer le warning. Personnellement, je préfère utiliser la fonction API lstrcpy(). Pour un nombre déterminé de caractères il y'a lstrcpyn().



lundi 12 mars 2007 à 08:52:52 | Re : strcpy et strcpy_s

louis14


j'ai eu le même problème, vérifie bien la taille maximale de la chaine de destination, pense au zero terminal.

louis14
lundi 12 mars 2007 à 11:01:19 | Re : strcpy et strcpy_s

lektrosonic

c est a dire, je doi mettre strcpy_s(lang[i],sizeof(lang[i]+1),temp_buffer); ?
lundi 12 mars 2007 à 12:45:41 | Re : strcpy et strcpy_s

louis14

non surtout pas  mais -1 pour laisser de la place au zéro terminal. j'avais une exception de ce type et en applicant cette démarche je n'en ai plus.


louis14
lundi 12 mars 2007 à 12:46:28 | Re : strcpy et strcpy_s

louis14

la taille de lang doit être choisie de façon à ne pas avoir de troncature.

louis14
lundi 12 mars 2007 à 19:07:30 | Re : strcpy et strcpy_s

lektrosonic

-1 je le met dans le sizeof ou apres? (sizeof(lang[i])-1) ou (sizeof(lang[i]-1) ?
lundi 12 mars 2007 à 23:27:06 | Re : strcpy et strcpy_s

lektrosonic

ceci est mon code: char* lang[50]; for(i=1;i<51;i++) { wsprintf(temp_str,"%ld",i); length=GetPrivateProfileString("hydrid_tool_language",temp_str,"",temp_buffer,MAX_PATH,lngfile); lang[i]=NULL; lang[i]=malloc(sizeof(char)*(length+1)); if(lang[i]==NULL) { error(9,hwnd_loading); } strcpy(lang[i],temp_buffer); } Pouvait vous me dire svp comment je vai ecrire strcpy_s qui remplacera strcpy..merci
mardi 13 mars 2007 à 04:21:31 | Re : strcpy et strcpy_s

SAKingdom

Membre Club
wsprintf, c'est pas pour du UNICODE ça ?

De plus, peut-être est-ce voulu mais, tu commence ton tableau à 1. Normalement c'est à 0 donc: for(i=0;i<51;++i)

char *lang[50] <- c'est un tableau de pointeurs.
Si tu fais sizeof(lang[i]), tu obtiendra à tout les coups 4, car c'est la taille d'un pointeur.

Moi, à ta place, je choisirais d'ignorer l'avertissement. Si tout est bien codé, il n'y a aucune raison d'utiliser strcpy_s (en plus, c'est plus lourd qu'un strcpy).

Il existe un emplacement dans les propriétés de ton projet pour désactiver les avertissements. Suffis d'entrer le numéro de l'avertissement pour qu'il n'apparaise plus. Je ne peux pas te dire exactement où car je suis sous Linux actuellement mais je crois que c'est dans l'onglet compilateur.

C++ (@++)

mardi 13 mars 2007 à 04:28:20 | Re : strcpy et strcpy_s

SAKingdom

Membre Club
Oups pardons. Petite erreur:

for(i=0;i<50;++i)
D'ailleur, c'est applicable aussi si tu commence à 1 sinon, tu te trouve à lire en dehors du buffer:
for(i=1;i<50;++i)

C++ (@++)


1 2

Cette discussion est classée dans : dev, cpp, warning, strcpy, doi


Répondre à ce message

Sujets en rapport avec ce message

installation dev Cpp [ par ludaavics ] Je suis ptêt pô doué, mais j'ai fait l'erreur d'installer eux fois dev cpp( il prévienne en plus).C'est simple : j'ai d'abord installé une première fo generation nombre aleatoire sous dev cpp [ par dionysos ] Bonjour,En c, sous dev cpp, comment generer des nombre de façon aleatoire (entiers) ?Quelle(s) bibliotheque(s)?Quelle(s) fonction(s)?J'ai pensé à rand graphisme ms-dos en c avec dev-cpp [ par surfeurnet ] Salut,Je suis débutant en c et je voudrai faire des graphiques sous ms-dos avec dev-cpp comment puis-je faire (j'ai entendue parlez de l'utilisation d Pb avec gotoxy de econio.h [ par jujunio ] FrelonBonjour, j'utilise la librairie econio.h et econio.cpp pour gotoxy.Et le pb c'est que lorsque je compile, j'ai un warning que je ne comprend pas réponse compilateur dev-cpp [ par surfeurnet ] Dev-cpp m'envoit 20 mesages d'erreur du type :[Linker error] undefined reference to `WSAStartup@8'Quelqu'un pourrait-il m'indiquer ce que cela signif probléme dev cpp [ par alphaone ] Avec mon compilateur dev cpp je ne sais pas comment on fais des programme dos. Créer une DLL avec Dev-Cpp [ par ennixo ] Coucou, je n'y connais absolument rien en C++ mais j'ai besoin de créer une DLL que je pourrai appeller en VB par la suite.si quelqu'un peut soit m'ex Pb dev-cpp et winxp [ par titizebioutifoul ] Depuis peu de temps je suis passer à Win xp et j'ai donc réinstaller dev-c++. Mais je ne trouve pas d'autoexec.bat à modifier et lorsque je compile j' Problème compilation : Permission denied [ par kojiro2 ] C la premiere fois que je vois ce type d'erreur.J'utilise Dev-cpp 4.9.Voila ce que me dit Dev-cpp lorsque je compile:This is a linker error! It's a ge Faire du graphique avec Dev cpp [ par kojiro2 ] Salut, je spouhaite faire des programmes intégrant un peu plus de graphisme(carré ligne...). Je sais qu'il existe une librairie spéciale avec BORLAND


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales