首页 > 解决方案 > 如何在 C 中的数组中找到数组的大小?

问题描述

我正在处理一个 leetcode 问题,您必须遍历一个包含其他各种长度数组的数组。我正在尝试找到一种方法来获取数组中数组的长度,以便我可以遍历该数组。到目前为止,我已经尝试过类似的事情:

size = sizeof(array) / sizeof(int), size = sizeof(array) / sizeof(array[i]) 等等。

但是每次我得到一个似乎与数组本身无关的整数值。我记得以前做过这样的事情,但我不记得我是怎么做到的。有没有人知道完成这样事情的最佳方法?

tl;博士:

假设我们得到一个 **array = [[0,1,2],[0],[]] 我如何找到各个数组 [0,1,2]、[0] 和 [] 的大小在给定的数组数组中?谢谢 :)

标签: arraysc

解决方案


为了让我的评论成为答案:

对于像**array = [[0,1,2],[0],[]](伪代码,但我们可以推断出它的含义)这样的参差不齐的数组,无法检索每个子数组的大小,因为该信息在运行时不存在。**array只是指向某些整数的三个地址的某些内存的指针。

最简单的解决方案是让指针指向稍微“智能”的对象,例如

struct IntArray {
  unsigned int count;
  int *data;
}

但这对于您的 Leetcode 问题可能是不可能的。


推荐阅读