C++ fonction, strtok()cplusplus.comstrtok - dépassement de mémoire tampon
Est-ce que cet exemple souffrir de dépassement de mémoire tampon si str ne se termine pas correctement?
/* strtok example */
/* source - cplusplus.com (see link below) */
#include <stdio.h>
#include <string.h>
int main()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-"); // walk the stack?
}
return 0;
}
Si str ne se termine pas correctement avec "\ 0", est-il pas possible pour
pch = strtok (NULL, " ,.-");
marcher la pile?
Merci!
La manière la plus simple de penser à ceci est que si 'str' n'est pas correctement terminé, alors * ce n'est pas une chaîne de style C *. C'est juste quelques caractères. Passer autre chose qu'une chaîne C à 'strtok' est une mauvaise nouvelle, bien sûr. –
Est-ce que c'est pour du piratage de casquettes blanches? – Chubsdad