comment se débarrasser de la “avertissement: la conversion de non-pointeur de type 'char' de NULL”?
J'ai ce bloc de code:
int myFunc( std::string &value )
{
char buffer[fileSize];
....
buffer[bytesRead] = NULL;
value = buffer;
return 0;
}
La ligne - tampon[octets] = NULL est de me donner un avertissement: la conversion de non-pointeur de type 'char' partir de la valeur NULL. Comment puis-je me débarrasser de cet avertissement?
OriginalL'auteur Owen | 2011-05-18
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser
NULL
? Il est généralement réservé pour les pointeurs, et vous n'avez pas un pointeur, qu'un simplechar
. Utilisez simplement\0
(null-terminator) ou un simple0
.OriginalL'auteur Xeo
buffer[bytesRead] = 0;
//NULL est destiné pour les pointeursComme une suggestion, si vous voulez éviter de copier et tous, alors, ci-dessous peuvent être considérées.
OriginalL'auteur iammilind
NULL
≠NUL
.NULL
est une constante représentant un pointeur null en C et C++.NUL
est le caractère ASCII NUL, ce qui en C et C++ met fin à cordes et est représenté comme\0
.Vous pouvez également utiliserEn C++, les constantes de caractères sont de type0
, ce qui est exactement le même que\0
, car en C, les chaînes de caractères ontint
type.char
.c
, depuis que le code clairement utilise unstd::string
, qui est le C++. En tant que tel, les littéraux de chaîne ne sont pasint
mais correctementchar
.À partir de votre réponse, je atleast pouvez voir comment les OP ont peut-être eu à
NULL
pour l'initialisation de la char.. merci pour cela. xDva montrer que je n'ai pas lu la question.
OriginalL'auteur ninjalj