2012-03-25 80 views
0

假設我聲明數組如下:用戶在數組中插入了多少個元素?

int myArr = [someSize]; 

現在我把n個元素(其中n是不完全清楚,但ñ< someSize)在像這樣

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

現在我想要知道有什麼方法可以確切地找出用戶輸入了多少元素。

回答

1

如果您知道有一些值不能放入數組中(即事先被檢查和禁止),那麼你可以初始化數組中的每個元素,然後進行計數。例如如果陣列初始化爲-1

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

不,如果這就是你所有你無法弄清楚。 C不會在內部存儲寫入數組元素的數量。

3

您無法從陣列中獲取任何此類信息。如果你需要它,你會想記錄它。當已經需要我這個,我平時用的東西,如:

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

當您創建此,您將next_element爲0,並添加元素,你使用類似myArr.arr[myArr.next_element++] = whatever;