用户在数组中插入了多少个元素?

时间:2012-03-25 09:37:35

标签: c arrays

假设我声明了一个如下数组:

int myArr = [someSize];

现在我把n个元素(其中n不完全知道,但n< someSize)就像这样

 myArray[0] = 12;
 myArray[1] = 23;
 and so on .....

现在我想知道有没有办法找出用户输入了多少元素。

3 个答案:

答案 0 :(得分:3)

您无法从阵列中获取任何此类信息。如果你需要它,你会想要录制它。当我需要这个时,我通常使用类似的东西:

struct myArray_t { 
    size_t next_element;
    int arr[somesize];
};

创建此项时,将next_element设置为0,要添加元素,请使用myArr.arr[myArr.next_element++] = whatever;

之类的内容

答案 1 :(得分:2)

不,如果这就是你所拥有的全部,你就无法弄明白。 C不会在内部存储写入的数组元素的数量。

答案 2 :(得分:1)

如果你知道有一些值无法放入数组中(即事先检查和禁止它),那么你可以初始化数组的每个元素,然后进行计数。例如如果数组初始化为-1

int count = 0;
for (i = 0; i < someSize; i++) {
    if (myArr[i] != -1) count++;
}