C / C ++ utilise la fonction strcpy pour signaler une erreur: `` Il existe une exception non gérée à XXX: 0xC0000005: une violation d'accès s'est produite lors de l'écriture à l'emplacement 0x00000000 ''

C C Uses Strcpy Function Report An Error



Strcpy est une fonction de bibliothèque standard en langage C. Sa fonction est de copier une chaîne contenant le terminateur ' 0' dans un autre espace d'adressage. La valeur de retour est de type char *. Sa déclaration prototype: char * strcpy (char * dest, const char * src) mais lors de l'utilisation de la fonction strcpy, il faut faire attention au pointeur nul ne peut être utilisé comme son argument, ni comme paramètre de dest ni comme paramètre de src, sinon il signalera une erreur: «Il y a une exception non gérée à XXX: 0xC0000005: Une violation d'accès s'est produite lors de l'écriture à l'emplacement 0x00000000.»

Exemple 1: Un pointeur nul ne peut pas être utilisé comme paramètre pour dest

Avoir le code suivant:



#include #include int main() { char str[20] = { 0 } strcpy(NULL, 'hello world') printf('str:%s ',str) return 0 }

Compilez et exécutez, nous constaterons que le programme signale une erreur, comme indiqué ci-dessous:





Exemple 2: Un pointeur nul ne peut pas être utilisé comme paramètre de src

Avoir le code suivant:

#include #include int main() { char str[20] = { 0 } strcpy(str, NULL) printf('str:%s ',str) return 0 }

Compilez et exécutez, nous constaterons que le programme signale une erreur, comme indiqué ci-dessous:



Les deux exemples ci-dessus prouvent que les pointeurs nuls ne peuvent pas être utilisés comme arguments de la fonction strcpy.