2012-05-13 1 views
2

quand j'écrisopération de pointeur ++ provoque une fuite de mémoire?

char *s = "hello everyone"; 
s++; 

est là fuite de mémoire ici?

p/s: L'anglais n'est pas ma langue maternelle, donc peut avoir quelques erreurs.

+0

Cela ne devrait même pas compiler; il devrait être 'const char * s =" salut tout le monde ";' –

+0

NON, il fonctionne toujours normalement – 5fox

Répondre

6

Non, les littéraux de chaîne ne sont pas alloués, il n'y a donc pas de fuite de mémoire.

3

Non, il n'y a pas de fuite et cela n'a rien à voir avec le pointeur pointant sur une chaîne littérale. L'incrémentation d'un pointeur ne provoquera JAMAIS une fuite de mémoire. La seule chose qui provoque des fuites de mémoire ne libère pas la mémoire que vous allouez.

Questions connexes