2012-03-25 2 views
0

은 가정하자 나는 다음과 같은 배열을 선언 배열에서 사용자가 몇 개의 요소를 삽입 했습니까?

int myArr = [someSize]; 

가 지금은 n 개의 요소 넣어 (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;

관련 문제