Ответ 1
Вы можете использовать ptype
, чтобы узнать тип символа.
Для int array[5]
,
(gdb) ptype array
type = int [5]
Я знаю, что вы можете печатать массив в gdb, например.
(gdb) p *[email protected]
Есть ли команда gdb, которая может рассказать вам о ее длине, например. удобный ярлык для ввода чего-то вроде:
(gdb) p sizeof(array)/sizeof(int)
В случае, когда массив был определен во время компиляции, и вы хотите его проверить
Вы можете использовать ptype
, чтобы узнать тип символа.
Для int array[5]
,
(gdb) ptype array
type = int [5]
Если он фактически определен как массив, например
int array[5];
Тогда да, вы можете использовать то, что вы написали, хотя лучший и более общий способ:
(gdb) p sizeof(array)/sizeof(*array)
Это не предполагает тип массива.
Если переменная определена как указатель, то нет.