#include<cstdio>
#include<stdlib.h>
int main()
{
char* ptr=NULL;
printf("%s",ptr);
return 0;
}
Elle imprime (null) en tant que sortie. Ce qui précède est un exemple de code. En code réel, je reçois char * comme retour d'une fonction et je souhaite imprimer la chaîne de caractères pour la journalisation. Cependant, NULL est également une valeur de retour valide de cette fonction et donc je me demande si une vérification nulle est nécessaire avant d'imprimer la chaîne de caractères?Le code C suivant est-il sécurisé?
char* ptr=someFuncion();
// do i need the following if statement?
if(ptr!=NULL)
{
printf("%s",ptr);
}
Je veux juste être sûr que la sortie serait même à savoir si ptr = NULL alors sortie doit être (null) sur toutes les plateformes et les compilateurs et le code ci-dessus (sans instruction if) ne plantage sur tout Plateforme compatible C standard.
En bref, est le code ci-dessus (sans instruction if) compatible avec la norme?
Merci pour votre aide et la patience :)
Cordialement
lali
Qu'est-ce qui l'en-tête '' fournir à votre code? Votre code appelle un comportement indéfini en passant un pointeur null à une fonction qui n'en attend pas. Tout peut arriver - y compris le fait qu'il pourrait accidentellement fonctionner, surtout. –
ok, j'ai compris. Merci à tous pour cette aide "en temps réel" :)) – ghayalcoder