1

有没有办法获得一个列的数量char array

它是这样声明的:static const char *countries[][2] = { ... };

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

4

2 回答 2

1

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

于 2013-08-25T14:11:15.000 回答
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]
         );
}
于 2013-08-25T16:36:31.370 回答