Странность искать в строке с результатом pI + l.
pI = 4014016, l = 8.
При этом:
pI + l = 4014048 (!)
Но:
(long)pI + l = 4014024.
Почему так?
Вот исходник:
- Код: Выделить всё
int main() {
int l;
char *buff;
int *pI, *pI2;
l = 8;
buff = malloc( 2 * l );
pI = buff;
pI2 = buff + l;
printf("buff:\t\t%i\nl: \t\t%i\npI: \t\t%i\npI2=buff+l:\t%i\npI+l: \t\t%i\n", buff, l, pI, pI2, pI + l);
free( buff );
return 0;
}
И вывод в консоль:
- Код: Выделить всё
buff: 4014016
l: 8
pI: 4014016
pI2=buff+l: 4014024
pI+l: 4014048