내 어레이입니다 캜 크기를 결정할 어떻게 합니까?

내 어레이입니다 캜 크기를 결정할 어떻게 합니까?

즉, 이 어레이에는 보관할 수 있는 여러 요소를?

질문에 대한 의견 (1)
해결책
  • 경영자용 summary:*
int a[17];
size_t n = sizeof(a)/sizeof(a[0]);
  • 전체 answer:*

네 어레이입니다 바이트입니다 크기를 확인할 수 있는 '스이제로프 사용할 수 있습니다' 연산자:

int a[17];
size_t n = sizeof(a);

내 컴퓨터, 정수 n 이 4 바이트입니다 기절해있는 도왔으매 68 에 있다.

수를 결정하는 요소는 어레이이며 저희에게는힘과 나눌 수 있다 총 크기는 어레이입니다 배열 요소의 크기를 의해. 이와 함께 할 수 있는 유형, 다음과 같습니다.

int a[17];
size_t n = sizeof(a) / sizeof(int);

그리고 적절한 답을 내려받습니다 신앙이니라 유형 (68) / 4 = 17) 'a' 로 변경된 경우 깜박하셨다고 변경하시려면 끔찍한 버그 했습니다 스이제로프 (int) '이' 잘 알려져 있다.

따라서 우선 약수 스이제로프 (a [0]) '는' 의 크기는 제로스 요소로 어레이입니다.

int a[17];
size_t n = sizeof(a) / sizeof(a[0]);

또 다른 장점은 에로남이네 매개 변수화 쉽게 할 수 있습니다. 이 어레이에는 이름을 매크로 및 지역.

#define NELEMS(x)  (sizeof(x) / sizeof((x)[0]))

int a[17];
size_t n = NELEMS(a);
해설 (20)

스이제로프 '이' way 는 바른 길 iff 틀렸다니까 다루는 어레이에는 받지 못하는 등 매개변수입니다. 어떤 함수의 매개 변수로 전송됩니까 어레이에서는 처리됩니다 포인터입니다 도왔으매 '대신' 가 # 39 의 크기, 스이제로프 반품해야 pointer& array& # 39 의.

따라서 이 방법을 δ1 기능이 작동하지 않습니다. Size_t size '대신' 항상 추가로 매개변수입니다 전달하십시오 수를 나타내는 요소의 어레이입니다.

테스트:

#include 
#include 

void printSizeOf(int intArray[]);
void printLength(int intArray[]);

int main(int argc, char* argv[])
{
    int array[] = { 0, 1, 2, 3, 4, 5, 6 };

    printf("sizeof of array: %d\n", (int) sizeof(array));
    printSizeOf(array);

    printf("Length of array: %d\n", (int)( sizeof(array) / sizeof(array[0]) ));
    printLength(array);
}

void printSizeOf(int intArray[])
{
    printf("sizeof of parameter: %d\n", (int) sizeof(intArray));
}

void printLength(int intArray[])
{
    printf("Length of parameter: %d\n", (int)( sizeof(intArray) / sizeof(intArray[0]) ));
}

출력 (64 비트 리눅스 운용체계 (os):

sizeof of array: 28
sizeof of parameter: 8
Length of array: 7
Length of parameter: 2

출력 (총 32 비트 windows OS):

sizeof of array: 28
sizeof of parameter: 4
Length of array: 7
Length of parameter: 1
해설 (21)

눈여겨볼 만하다 ',' t help 다룰 때는 스이제로프 doesn& 어레이에서는 가치 있는 # 39 를 포인터입니다 넘어진 것을 알 수 있다. 이 경우에도 어레이에서는 방향점 시작, 그것은 하나의 요소로 포인터입니다 컴파일러와의 동일합니까 iqn 어레이입니다. 포인터, remember&quot &quot 않습니다. 다른 사항은요 어레이입니다 대한 사용된 초기화하십시오.

int a[10];
int* p = a;

assert(sizeof(a) / sizeof(a[0]) == 10);
assert(sizeof(p) == sizeof(int*));
assert(sizeof(*p) == sizeof(int));
해설 (4)

이 스이제로프 &quot trick"; 가장 좋은 방법입니다 그러니까말이야 (다는일은, 이 되는 주요 pet 초조하게하다), 한 작지만 중요한 변화가 괄호를 사용할 수 있습니다.

위키백과 항목을, C& # 39 의 &lt 계명을 따라 code&gt sizeof&lt /code>;;; 기능이 아닙니다. # 39 strong>;;;; s an &lt it& operator&lt /strong&gt. 따라서 요구하지 않을 경우 인수는 중심으로 인수 괄호 문자 이름이다. 이는 쉽게 기억할 수 있는 것처럼 보여 인수 이후, cast 는 괄호 표현식에서는 수 있습니다.

그래서: 이 경우 다음과 같다.

int myArray[10];

이 같은 코드를 사용하여 여러 요소를 찾을 수 있습니다.

size_t n = sizeof myArray / sizeof *myArray;

그 대안이 될 수 있는 것보다 훨씬 쉽게 판독합니다 다는일은, 괄호. 난 또 사용할 수 있는 은혜를 별표 (*) 는 오른쪽 부분에 비해 더 간결하게, s # 39 사단, 이후 it& 인덱스화를.

물론 이 모든 것은 너무 걱정할 필요가 없는 사단은 컴파일 타임 도왔으매 there& # 39 의 성능에 영향을 미치는 프로그램. 그래서 이 양식을 언제 어디서나 사용할 수 있습니다.

항상 사용할 수 있는 것이 아닌 경우, 실제 객체에는 스이제로프 협력하였습니다 한 유형, 이후 너회가 don& # 39 라는 잘못된 유형이거나 오류가 발생하여, t 걱정할 필요가 있다.

예를 들어, 말할 수 있는 기능을 가지고 있다, 예를 들어 일부 데이터 스트림을 바이트입니다 출력입니다 네트워크를 통해. # 39 의 let& <;;; 보내기 () 함수를 호출하십시오 code&gt &lt /code&gt 만들어 시행하십시오 포인터입니다 객체에는 인수로 보낼 수가 바이트입니다 개체에서. 그래서, 프로토타입 됩니다.

void send(const void *object, size_t size);

그리고 당신이 보내야 할 수 있도록 정수 다음과 같은 코드를 it up

int foo = 4711;
send(&foo, sizeof (int));

39 는 이제 you& 미묘한 방법으로, ve 에 발 사격 교도관님도요 &lt 유형을 지정하여 code&gt foo&lt /code>;;; 두 곳에. 하지만 다른 doesn& # 39, t, 코드 경우 변경 했습니다. 따라서 항상 do it like this:

send(&foo, sizeof foo);

이제 you& # 39, re 금지되었는지. 물론, 너회가 복제본임을 변수의 이름을 가지고 있지만 그 가능성은 매우 높은 경우에는 컴파일러 방식으로 깨뜨리고 멀티비트 바꾸라고요

해설 (4)
int size = (&arr)[1] - arr;

[이 링크] [1] 어렵다는 체크아웃하려고

[1]: http://arjunsreedharan.org/post/69303442896/the-difference-between-arr-and-arr-how-to-find-size 이 link&quot ";

해설 (4)

스이제로프 연산자를 작동하지 기능을 사용할 수 있는 것 때문에 가 앨리어스보다 참조가 포인터 groupx 디스테이징하는 어레이에서는 다음과 같이 할 수 있습니다.

len = sizeof(arr)/sizeof(arr[0])

당초 코드만이 찾을 수 있습니다. C 프로그램 com/go/downloads_kr 요소의 수를 어레이에서는

해설 (0)

데이터 유형의 어레이입니다 알고 있는 경우, 다음과 같은 항목을 사용할 수 있습니다.

int arr[] = {23, 12, 423, 43, 21, 43, 65, 76, 22};

int noofele = sizeof(arr)/sizeof(int);

39 의 데이터 유형은 모르는 경우 또는 don& 어레이이며 다음과 같은 항목을 사용할 수 있습니다.

noofele = sizeof(arr)/sizeof(arr[0]);

참고: 이거 정의되지 않은 경우에만 이 어레이에는 런타임에 함수 (malloc 등) 과 어레이입니다 전달된 않습니다. 두 경우 모두 '도착' (어레이입니다 이름) 는 포인터입니다.

해설 (1)

매크로 (x) '는 누구나 사용할 수 있도록 하는' 아리엘레멘스카운트 incorrectly. 이 때문에 현실적으로 민감한 사안인 만큼 단순히 # 39, & # 39 에 없는 너회가 can& 표현식에서는 때문에 array& # 39;; 유형:.

/* Compile as: CL /P "macro.c" */
# define ARRAYELEMENTCOUNT(x) (sizeof (x) / sizeof (x[0]))

ARRAYELEMENTCOUNT(p + 1);

Actually 평가하고 있다.

(sizeof (p + 1) / sizeof (p + 1[0]));

반면

/* Compile as: CL /P "macro.c" */
# define ARRAYELEMENTCOUNT(x) (sizeof (x) / sizeof (x)[0])

ARRAYELEMENTCOUNT(p + 1);

제대로 정보기술 (it) 로 평가되는:

(sizeof (p + 1) / sizeof (p + 1)[0]);

이거 진짜 doesn& # 39, 크기를 직접 관련이 없는 많이유 어레이에는. # 39 에서 정말 많은 오류가 없는 것을 보고, ve 그냥 i& 어떻게 C 언어 전처리기 작동합니다. 넌 항상 표현식에서는 관여할 수 있는 랩 매크로 매개변수에서 아닙니다.


이는 올바른. 내 예제에서와 은 안 하나. 하지만 실제로 that& # 39 의 정확히 무엇을 할 것입니다. As I p + 1 '은 앞서 언급한' 로 끝날 포인터입니다 유형 및 본 전체 매크로 (마찬가지로 시도할 경우 사용할 수 있는 기능이 매크로 포인터입니다 매개변수입니다).

하루가 끝날 때, 이 particular 인스턴스입니다 doesn& # 39, 장애, t really 물질 (그래서 그냥 # 39 m, s # 39 시간 낭비하는 everyone& I&;; 왜냐하면 당신은 지화자!) # 39, & # 39, 별로 없는 표현식에서는 don& 유형을 가진 array& # 39;. 하지만 지금 내가 생각하기에 중요한 요점이지 미묘한 대한 평가를 한 방법이다.

해설 (3)
  • 에 대한 다차원 어레이*를 컴포지션이 태드 좀 더 복잡하다. 즉, 사람들이 상수입니다 공텐리 명시성 매크로 정의
#define g_rgDialogRows   2
#define g_rgDialogCols   7

static char const* g_rgDialog[g_rgDialogRows][g_rgDialogCols] =
{
    { " ",    " ",  " ",  " 494", " 210", " Generic Sample Dialog", " " },
    { " 1",   " 330", " 174", " 88",    " ",  " OK",          " " },
};

하지만 이런 상수입니다 너무 스이제로프 로 컴파일 타임에 평가하실 수 있습니다.

#define rows_of_array(name)       \
    (sizeof(name   ) / sizeof(name[0][0]) / columns_of_array(name))
#define columns_of_array(name)    \
    (sizeof(name[0]) / sizeof(name[0][0]))

static char* g_rgDialog[][7] = { /* ... */ };

assert(   rows_of_array(g_rgDialog) == 2);
assert(columns_of_array(g_rgDialog) == 7);

참고로 이 코드 작동됨 C 와 c++에서. 두 개 이상의 치수에는 어레이에는 대한 사용

sizeof(name[0][0][0])
sizeof(name[0][0][0][0])

etc., 광고 인해서.

해설 (0)

C 에서 어레이에서는 크기:

int a[10];
size_t size_of_array = sizeof(a);      // Size of array a
int n = sizeof (a) / sizeof (a[0]);    // Number of elements in array a
size_t size_of_element = sizeof(a[0]); // Size of each element in array a                                          
                                       // Size of each element = size of type
해설 (4)
sizeof(array) / sizeof(array[0])
해설 (0)

39 의 슛, ve, you& &quot 미묘한 방법으로 교도관님도요 foot&quot 소개했다.

C # 39, & # 39 native&. 저장되지 스토리지보다 크기입니다. 따라서 권장됨 저장하라는 길이는 어레이입니다 통과할 때마다 별도의 변수를 / const, 통과시킬 어레이이며 특징은 다음과 같습니다.

#define MY_ARRAY_LENGTH   15
int myArray[MY_ARRAY_LENGTH];

항상 넷윈을 어레이에는 피할 경우, t, 이 경우, 고객의 마음을 can& # 39 피트). C++컴파일러는 쓰는 경우, s & # 39, & # 39 사용합니다를 [STL] [1] # 39 vector&;; 컨테이너입니다. 그들은 거의 같은 제공하십시오 어레이에는 &quot 비해, 이들은 performance&quot, 훨씬 더 유용한!


// vector is a template, the  means it is a vector of ints
vector numbers;  

// push_back() puts a new value at the end (or back) of the vector
for (int i = 0; i < 10; i++)
    numbers.push_back(i);

// Determine the size of the array
cout 
해설 (2)
#define SIZE_OF_ARRAY(_array) (sizeof(_array) / sizeof(_array[0]))
해설 (1)

내가 진정으로 원하는 경우 이를 통해 고객사의 어레이입니다 전달하는 구조를 구현하는 제안하세요 저장하였습니다 포인터입니다 운영까지도 배열입니다 유형 및 정수 크기를 나타내는 어레이입니다. 그런 다음 전달하고 수립하였습니다 데이터베이스에구성원을 총괄하였습니다. 그냥 할당하십시오 어레이입니다 변수 값 (포인터입니다 먼저 요소) 이 포인터입니다. 그런 다음 [i] '의 i 번째 요소 및 사용' '라이자어 검색하기를 내려받습니다 afaq 라이오시즈' 의 요소 수를 어레이입니다.

내가 어떤 코드가 포함되어 있습니다. # 39 의 더 많은 기능을 할 수 없는 it& 늘입니다 확장하지만 매우 유용합니다. 지자면 수 있지만, 이들은 다른 언어를 사용하는 경우 C 및 사용 중지해야 합니다 셨으며 운영까지도 vi3 기능에 내장.

/* Absolutely no one should use this...
   By the time you're done implementing it you'll wish you just passed around
   an array and size to your functions */
/* This is a static implementation. You can get a dynamic implementation and 
   cut out the array in main by using the stdlib memory allocation methods,
   but it will work much slower since it will store your array on the heap */

#include 
#include 
/*
#include "MyTypeArray.h"
*/
/* MyTypeArray.h 
#ifndef MYTYPE_ARRAY
#define MYTYPE_ARRAY
*/
typedef struct MyType
{
   int age;
   char name[20];
} MyType;
typedef struct MyTypeArray
{
   int size;
   MyType *arr;
} MyTypeArray;

MyType new_MyType(int age, char *name);
MyTypeArray newMyTypeArray(int size, MyType *first);
/*
#endif
End MyTypeArray.h */

/* MyTypeArray.c */
MyType new_MyType(int age, char *name)
{
   MyType d;
   d.age = age;
   strcpy(d.name, name);
   return d;
}

MyTypeArray new_MyTypeArray(int size, MyType *first)
{
   MyTypeArray d;
   d.size = size;
   d.arr = first;
   return d;
}
/* End MyTypeArray.c */

void print_MyType_names(MyTypeArray d)
{
   int i;
   for (i = 0; i < d.size; i++)
   {
      printf("Name: %s, Age: %d\n", d.arr[i].name, d.arr[i].age);
   }
}

int main()
{
   /* First create an array on the stack to store our elements in.
      Note we could create an empty array with a size instead and
      set the elements later. */
   MyType arr[] = {new_MyType(10, "Sam"), new_MyType(3, "Baxter")};
   /* Now create a "MyTypeArray" which will use the array we just
      created internally. Really it will just store the value of the pointer
      "arr". Here we are manually setting the size. You can use the sizeof
      trick here instead if you're sure it will work with your compiler. */
   MyTypeArray array = new_MyTypeArray(2, arr);
   /* MyTypeArray array = new_MyTypeArray(sizeof(arr)/sizeof(arr[0]), arr); */
   print_MyType_names(array);
   return 0;
}
해설 (1)

가장 좋은 방법은 이 정보를 저장할 경우, 예를 들어, 구조:

typedef struct {
     int *array;
     int elements;
} list_s;

필요한 모든 기능을 구현하는 등 다른 모든 작성, 제거, 평등, 체크 합니다. 매개변수입니다 쉽게 통과할 수 있다.

해설 (1)

스이제로프 '함수' 바이트 수를 되돌려줍니다 너회의 어레이입니다 사용되는 메모리. 스케쳐내 요소의 수를 계산하기 위해 함께 나눌 수 있다고 합니다 ',' 가변으로 너회의 어레이입니다 스이제로프 유형의 어레이입니다. # 39 라고 let& '의 경우 int 어레이입니다 [10]' 는 32 비트 정수, 컴퓨터의 가변적입니다 유형 (또는 4 바이트), 크기를 얻기 위해 너회의 어레이입니다 다음과 같이 해야 합니다.

int array[10];
int sizeOfArray = sizeof(array)/sizeof(int);
해설 (0)
  • 꼭 이래야겠어요 전혀 사용하지 않는 것을 '스이제로프 (경우에도 사용할 수 있습니다)' 를 얻을 수 있고, 두 개의 서로 다른 크기의 모든 요소 또는 바이트입니다 어레이에서는 수가 있는 마지막 두 가지 경우에 가르켜 삽입하십시오. 아래 두 가지 매크로, 각각에 대해 보다 쉽게 사용할 수 있습니다. 그 이유는 명백하네 유지 관리자 및 차이 '를 만들기 위해 의사를 코드를 스이제로프 (ptr)' 에서 처음 보면 스이제로프 (도착) '즉, t # 39 이 방법으로 기록되었으므로 isn& 명백하네) 도왔으매 버그들은 어졌다면 명백하네 code.* 읽는 모든 사람들에게 그동안 이 주제에 관한 중요 버그: https://lkml.org/lkml/2015/9/3/428 내가 이견을 보이고 있는 솔루션을 함께 제공하는 기능을 사용하지 않는 어레이입니다 하는 표기 매개변수입니다 되었습니다. I like 어레이입니다 붽뎄 로 표기가 사용되고 있는 포인터입니다 표시됨과 어레이입니다. 하지만 간편한 솔루션이 적용될 수 있도록 하는 즉, 갈레라 컴퍼니 코드를 작성할 수 없습니다. 우리는 우리가 알고 있는 크기와 배열에서 3 할 수 있습니다.
  • 크기 요소를 어레이입니다
  • 배열에서 요소의 수를
  • 크기 (바이트) 에서 사용하는 메모리 작업자쪽에서 어레이입니다 _

    배열 요소의 크기를

    첫 번째는 매우 단순하고, 우리는 이 모든 경우에 포인터를 대처하는 doesn& # 39, t, s # 39 수행됨 it& 어레이나 때문에 같은 방식으로. 사용 예제: "' void foo (ptrdifft 네메기, int 도착 [정적임 네메기]) { 크소르 (도착, 네메기, 스이제로프 (도착 [0]), cmp). } "' 크소르 () 이 값을 요구에 따라 '제 3 자 지원군 인수. 다른 두 가지 질문에 있는 주제를 다루는 어레이에서는 we& # 39, 우리가 원하는 것을 확인할 수 있도록 하고, 만약 그렇지 않을 경우, re) 와 브레이크 (break) 컴필레이션 we& # 39 를 다루는 포인터입니다, 대화할거에요 프레젠테이션이든 잘못된 값. 이 때, 우리가 쉽게 볼 수 있을지 컴파일 줄바꿈할 weren& # 39, 단, t 다루는 어레이에서는 포인터입니다 대신 및 대화할거에요 그냥 쓰지 않을 수 있는 코드를 저장하는 매크로 뒤에 변수나 배열의 크기를 포인터입니다. _

    배열에서 요소의 수를

    이 번호요) 가 가장 일반적인 대답, 많은 도움을 제공한 전형적인 매크로 array_size: "'

    define ARRAY_SIZE (도착) (스이제로프 (도착) / 스이제로프 (도착) [0])

    "' 그 점을 감안할 때 흔히 사용하는 것이 좋다 '의 유형' ptrdiff_t com/go/4e6b330a_kr 서명됩니다 ARRAY_SIZE 정의하십시오 변형 서명됩니다 이 매크로는: "'

    define ARRAY_SSIZE (도착) ((ptrdiff_t) ARRAY_SIZE (도착)

    "' 이제 그만 '' 명 이상의 PTRDIFF_MAX 어레이에는 전달자로써 잘못된 값을 엔드입니다 서명됨 버전의 매크로 있지만, 이미 같은 충스러웠으니 판독값 C17::6.5.6.9 어레이에는 사용해 볼지옥으로. 이 경우 '와' 만 'ARRAY_SIZE size_t' 사용해야 합니다. 같은 최신 버전의 컴파일러에도 mgcc 8bpc, 이 때문에 안전하게 적용할 때 매크로를 알려 줍니다 포인터 (안전한 거래를 할 몇 가지 다른 방법으로 tfsnap 컴파일러에도). 전체 크기는 크기 (바이트) 에 의해 어레이입니다 작동하잖아 나누는 방식으로 각 요소. 용례: "' void foo (ptrdiff_t 네메기) { 챨 버피 [네메기]; 프리츠 (버피, ARRAY_SIZE (버피), stdin). } void 표시줄에는 (ptrdiff_t 네메기) { int 도착 [네메기]; 대한 (ptrdiff_t i = 0; 내가 &lt. ARRAY_SSIZE (도착). i++) [i] = i, 도착 } "' 만약 이 기능을 사용할 수 있지만, t # 39 didn& 어레이에는 잡을라는데 솔리드로 매개변수입니다 대신 전 코드 때문에 안 될 것 "이라고 컴파일하십시오 약간만이라도 없습니다 버그 (점을 감안할 때 최근 컴파일러 버전 사용하고 있는지 또는 다른 트릭 사용됨), 그리고 우리는이를 교체해야 할 매크로 호출을 통해 가치: "' void foo (ptrdiff_t 네메기 챨 버피, [네메기]) { 프리츠 (버피, 네메기, stdin). } void 표시줄에는 (ptrdiff_t 네메기, int 도착 [네메기]) { 대한 (ptrdifft i = 0; 내가 &lt. 네메기. i++) [i] = i, 도착 } "'

    크기는 바이트입니다 작업자쪽에서 어레이입니다 에서 사용하는 메모리

    흔히 'ARRAY_SIZE' 로 사용할 수 있는 솔루션을 이전 사례와 있지만, 이 때문에 안전하게 기록되었으므로 아마 it& # 39 의 덜 흔한 사례는 드물다. 스이제로프 (도착) '가치' 를 사용하는 것이 일반적인 방법으로 afaq afnor. 문제: 함께 한 동일합니까 이전. 대신 포인터입니다 경우, 해당 프로그램은 어레이에서는 검색하기를 견과래 우리가 알고 있는 이전과 같은 매크로를 사용하여 필요한 문제 해결 방안은 部门从 돌아올 (컴파일 포인터에 적용될 경우 브레이크를 정보기술 (it): "'

    define ARRAY_BYTES (도착) (스이제로프 (도착) [0]) * array_size (도착)

    "' 어떻게 작동하잖아 매우 간단합니다. 이 때문에 수학적 취소 후 사단은 되돌림 '에 있는' ARRAY_SIZE 너회가 다니엘을 스이제로프 (도착) ',' 단 한 번의 추가 ARRAY_SIZE '안전' 이다. 사용 예제: "' void foo (ptrdiff_t 네메기) { int 도착 [네메기]; 멤세트 (도착, 0, ARRAY_BYTES (도착)); } "' '제 3 자 지원군 ()' 이 값으로 멤세트 요구사항뿐 인수. 이전과 같은 경우 어레이입니다 매개변수입니다 won& # 39 는 수신되었습니다 (a 포인터입니다), it, t 매크로 호출을 재장착합니다 값에 의해, 그리고 컴파일하십시오 수밖에 없다. "' void foo (ptrdiff_t 네메기, int 도착 [네메기]) { 멤세트 (도착, 0, 스이제로프 (도착 [0]) * 네메기); } "'

해설 (8)

',' 연산자입니다 &amp 사용할 수 있습니다. 다음은 소스 코드:

#include
#include
int main(){

    int a[10];

    int *p; 

    printf("%p\n", (void *)a); 
    printf("%p\n", (void *)(&a+1));
    printf("---- diff----\n");
    printf("%zu\n", sizeof(a[0]));
    printf("The size of array a is %zu\n", ((char *)(&a+1)-(char *)a)/(sizeof(a[0])));

    return 0;
};

다음은 견본입니다

1549216672
1549216712
---- diff----
4
The size of array a is 10
해설 (4)

가장 간단한 대답:

#include 

int main(void) {

    int a[] = {2,3,4,5,4,5,6,78,9,91,435,4,5,76,7,34};//for Example only
    int size;

    size = sizeof(a)/sizeof(a[0]);//Method

    printf ("size = %d",size);
    return 0;
}
해설 (2)