gpt4 book ai didi

c - C中的数组数组,其中数组的长度不同

转载 作者:行者123 更新时间:2023-12-02 07:21:06 24 4
gpt4 key购买 nike

我知道您可以轻松地制作一个固定长度的矩阵:

double m[][2];

但是,我想有一个数据结构,它是一个数组,在这里存储长度不同的double类型的数组。我怎么做?

一个例子是:
arr1 = {1,2,3,4};
arr2 = {1,2};

最佳答案

Jagged arrays通常表示为C语言中的指针数组:

double arr0[] = {4, 1, 7};
double arr1[] = {1, 2, 3, 4};
double arr2[] = {1, 2};
double *m[] = {arr0, arr1, arr2};

不幸的是,没有标准的语法来定义与指针的外部数组“一致”的内部数组。

请注意,现在无法找到每个内部数组的长度,因此您需要添加某种“标记”或单独存储长度:
#define SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
...
size_t len[] = { SIZE(arr0), SIZE(arr1), SIZE(arr2) };

关于c - C中的数组数组,其中数组的长度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46130032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com