C sizeof char * массив У меня есть массив char* следующим образом: char *tbl[] = { "1", "2", "3" }; Как использовать оператор sizeof для получения количества элементов массива, здесь 3? Ниже было сделано, но верно ли это? int n = sizeof(tbl) / sizeof(tbl[0]) Ответ 1 Да, size_t n = sizeof(tbl) / sizeof(tbl[0]) - наиболее типичный способ сделать это. Обратите внимание, что использование int для размеров массива - не самая лучшая идея. Ответ 2 Более короткая и, возможно, более чистая версия будет выглядеть как sizeof tbl / sizeof *tbl :) Ответ 3 Да, это даст вам количество элементов в массиве tb1. int n = sizeof(tbl) / sizeof(tbl[0]) Интерпретация: sizeof (tb1) предоставит размер всего массива i.e, tb1 = 3 байта sizeof (tb1 [0]) дает размер символа, так как tb1 [0] дает значение символа (значение по адресу tb1 + 0) = 1 байт Разделение этих двух даст вам 3 элемента
Ответ 1 Да, size_t n = sizeof(tbl) / sizeof(tbl[0]) - наиболее типичный способ сделать это. Обратите внимание, что использование int для размеров массива - не самая лучшая идея.
Ответ 2 Более короткая и, возможно, более чистая версия будет выглядеть как sizeof tbl / sizeof *tbl :)
Ответ 3 Да, это даст вам количество элементов в массиве tb1. int n = sizeof(tbl) / sizeof(tbl[0]) Интерпретация: sizeof (tb1) предоставит размер всего массива i.e, tb1 = 3 байта sizeof (tb1 [0]) дает размер символа, так как tb1 [0] дает значение символа (значение по адресу tb1 + 0) = 1 байт Разделение этих двух даст вам 3 элемента