Я вижу следующую проблему с GDB (GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409- git), которая печатает размер большого статически распределенного массива фиксированного размера:
(gdb) p &buf
$1 = (char (*)[52428800000]) 0x15491f84e000 <buf>
(gdb) p sizeof(buf)
$2 = 889192448
Я также попытался printf("%ld", sizeof(buf));
в соответствующей программе на C ++, которая печатает 52428800000
, как и следовало ожидать.
Ожидается ли такое поведение? Какое меньшее значение печатает GDB?