Размер массива C через GDB - PullRequest
       5

Размер массива C через GDB

12 голосов
/ 10 января 2012

Я знаю, что вы можете напечатать массив в GDB, например,

(gdb) p *array@10

Есть ли команда GDB, которая может сообщить вам ее длину, например, удобный ярлык для ввода чего-то вроде:

(gdb) p sizeof(array)/sizeof(int)

В случае, если массив был определен во время компиляции, и вы хотите проверить его

Ответы [ 2 ]

17 голосов
/ 13 января 2012

Вы можете использовать ptype для определения типа символа.

Для int array[5],

(gdb) ptype array
type = int [5]
12 голосов
/ 10 января 2012

Если он фактически определен как массив, например,

int array[5];

Тогда да, вы можете использовать то, что написали, хотя лучший и более общий способ таков:

(gdb) p sizeof(array)/sizeof(*array)

Это не предполагает тип массива.

Если переменная определена как указатель, то нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...