有没有办法获得一个列的数量char array
?
它是这样声明的:static const char *countries[][2] = { ... };
但我想动态获取它,所以不用自己输入“2”
不,您必须将大小与数组一起传递。可能存在依赖于系统/编译器/库的方式,但依赖这些功能并不是一个好主意。如果你使用的是 C++ 标准库,你最好使用std::vector
,它携带了更多的元数据,比如size()
你感兴趣的。
当然可以。操作员可以轻松地检查静态初始化的数组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]
);
}