如何查找阵列的项目长度/数量?

时间:2011-04-09 11:47:57

标签: c arrays

  

可能重复:
  length of array in function argument

我的数组大小为5.例如:

arrCustId[5]

我如何知道我的阵列中已存在多少个客户ID? 总之如何找到数组的长度?

3 个答案:

答案 0 :(得分:26)

如果数组是静态分配的,请使用sizeof(array) / sizeof(array[0])

如果它是动态分配的,不幸的是,你运气不好,因为这个技巧总会返回sizeof(pointer_type)/sizeof(array[0])(在带有char *的32位系统上将是4)你可以a)保持一个#define(或const)常量,或b)保持变量。

答案 1 :(得分:12)

你的意思是阵列本身有多长,或者有多少顾客?

因为第一个问题的答案很简单:5(或者如果你不想硬编码,Ben Stott的回答)。

但是其他问题的答案无法自动确定。大概你已经分配了一个长度为5的数组,但最初会有0个客户ID,并且会将它们一次放入一个,你的问题是,“我将多少个客户ID放入数组?”

C不能告诉你这个。您需要保留一个单独的变量int numCustIds(例如)。每次将客户ID放入数组时,请递增该变量。然后你就可以知道你放了多少。

答案 2 :(得分:-8)

我不确定我到底知道你的意思。

但要获得初始化数组的长度,

没有strlen(string)工作??