簡體   English   中英

如何在 C 的數組中找到數組的大小?

[英]How do you find the size of an array within an array in C?

我正在處理一個 leetcode 問題,您必須遍歷一個包含其他各種長度的 arrays 的數組。 我正在嘗試找到一種方法來獲取數組中數組的長度,以便我可以遍歷該數組。到目前為止,我已經嘗試過類似的事情:

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

但是每次我得到一個似乎與數組本身無關的 integer 值。 我記得以前做過這樣的事情,但我不記得我是怎么做到的。有沒有人知道完成這樣事情的最佳方法?

tl;博士:

假設我們得到一個 **array = [[0,1,2],[0],[]] 我如何找到單個 arrays [0,1,2]、[0] 和 [] 的大小在 arrays 的給定數組內? 謝謝:)

為了讓我的評論成為答案:

對於像**array = [[0,1,2],[0],[]] (偽代碼,但我們可以推斷出它的含義)這樣的參差不齊的數組,無法檢索每個子數組的大小因為該信息在運行時不存在。 **array只是指向某些整數的三個地址的某些 memory 的指針。

最簡單的解決方案是讓指針指向稍微“智能”的對象,例如

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

但這對於您的 Leetcode 問題可能是不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM