Bonjour,
J'aimerais savoir quelle valeur ce programme en C va-t-il afficher? Et pourquoi?
Sur ma machine, son exécution (en C et en C++) m'a affiché " 1 ".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void function(int a, int b, int c) { char buffer1[5]; char buffer2[10]; char *ret; ret = buffer1 + 12; (*ret) += 8; } void main() { int x; x = 0; function(1,2,3); x = 1; printf("%d\n",x); }
Mais j'aimerais savoir s'il y a le risque d'avoir un buffer overflow (dépassement de tampon) avec ce programme dans un autre type de machine ?
Merci.
Partager