strcpy () - copie plus courte chaîne à une

S

sivamit

Guest
Salut comment ça marche le code ..? char * p = "WiMAX", omble chevalier arr [3]; strcpy (arr, p); printf ("% s", arr); Sortie: WiMAX le compilateur ne marche pas montrer le moindre avertissement ou un message d'erreur .. whatz l'prblm ..? S'il vous plaît aider ..!!!
 
Thats le parti (d) de pointeurs en C. arr est essentiellement un pointeur vers une mémoire où commence arr. En strcpy (arr, p), vous êtes en l'utilisant comme un pointeur, ce qui ne strcpy copier toutes les données de la source à la destination jusqu'à ce qu'il trouve caractère NULL (ce qui était mon compilateur endroits après chaîne "WiMAX" automatiquement). Donc, vous finissez de copier la chaîne complète de p à arr. Si vous déclarez une variable après arr [3], vous pouvez voir que sa valeur est écrasée par strcpy ().
 
Je pense que l'attachement peut clarifier votre problème .... : D: idée:
 
arr besoins 6 unités de stockage, 5 pour «WiMAX» et un pour le caractère nul de terminaison (0). Un compilateur C ne pas écrire de gardiennage de code pour un programmeur. Si vous écrasez la mémoire, vous êtes sur votre propre, le compilateur ne génère pas de code de vérification des limites. Dans ce cas, strcpy () ne pas écraser la mémoire qui se serait écrasé au programme.
 

Welcome to EDABoard.com

Sponsor

Back
Top