arrays - 如何在 C 中的数组中找到数组的大小?
问题描述
我正在处理一个 leetcode 问题,您必须遍历一个包含其他各种长度数组的数组。我正在尝试找到一种方法来获取数组中数组的长度,以便我可以遍历该数组。到目前为止,我已经尝试过类似的事情:
size = sizeof(array) / sizeof(int), size = sizeof(array) / sizeof(array[i]) 等等。
但是每次我得到一个似乎与数组本身无关的整数值。我记得以前做过这样的事情,但我不记得我是怎么做到的。有没有人知道完成这样事情的最佳方法?
tl;博士:
假设我们得到一个 **array = [[0,1,2],[0],[]] 我如何找到各个数组 [0,1,2]、[0] 和 [] 的大小在给定的数组数组中?谢谢 :)
解决方案
为了让我的评论成为答案:
对于像**array = [[0,1,2],[0],[]]
(伪代码,但我们可以推断出它的含义)这样的参差不齐的数组,无法检索每个子数组的大小,因为该信息在运行时不存在。**array
只是指向某些整数的三个地址的某些内存的指针。
最简单的解决方案是让指针指向稍微“智能”的对象,例如
struct IntArray {
unsigned int count;
int *data;
}
但这对于您的 Leetcode 问题可能是不可能的。