如何获取char数组的列数?

时间:2013-08-25 14:08:32

标签: c++ c

有没有办法获得char array的列数?

声明如下:static const char *countries[][2] = { ... };

但我想动态地获取它,所以不用自己输入'2'

2 个答案:

答案 0 :(得分:1)

不,你必须将数据与数组一起传递。可能存在依赖于系统/编译器/库的方式,但依赖这些功能并不是一个好主意。 如果您使用的是C ++标准库,则最好使用std::vector,其中包含更多元数据,例如您感兴趣的size()

答案 1 :(得分:0)

当然可以。可以使用sizeof运算符轻松检查静态初始化的数组。以下代码段(在C中)打印与2D指针数组相关的所有大小。

#include <stdio.h>

static const char *countries[][2] = { { "dfdf", "dss" }, { "ss"}, { "toto"}};

int main(void) {
  printf("dim0 %zu, dim1 %zu, elements %zu\n",
         sizeof countries/sizeof countries[0],
         sizeof countries[0]/sizeof countries[0][0],
         sizeof countries/sizeof countries[0][0]
         );
}