none
[MFC] 배열 크기 알아내는법 RRS feed

  • 질문

  • 배열 크기 알아내는법으로는

    sizeof(a) - sizeof(a[0])를 통해서 구할 수 있다는 것을 알고 있습니다.

    현재 배열을 동적할당을 통해 2차원 배열을 선언했습니다

    ----------------------------------

    BYTE **a = new BYTE*[3];

    a[0] = new BYTE[5];

    a[1] = new BYTE[2];

    a[2] = new BYTE[3];

    -----------------------------------

    이러한 2차원 배열의 배열 크기를 알아내려고 하는데요,

    동적 할당이라그런지 sizeof를 통해서 구하려해도 원하는 값이 나오질 않습니다..

    무언가 잘못쓴건지 알수없지만.. 해결할 수 있는 방법에 대해 조언부탁드립니다...

    2차원 배열 a의 크기와 a[0], a[1], a[2]의 크기를 각각구하고싶습니다.

    2012년 10월 26일 금요일 오후 5:22

모든 응답

  • crt 함수인 _msize를 통해 얻어 올 수 있습니다.

    #include <malloc.h>
    #include <windows.h>

    int _tmain(int argc, _TCHAR* argv[])
    {
     BYTE **a = new BYTE*[3];
     a[0] = new BYTE[5];
     a[1] = new BYTE[2];
     a[2] = new BYTE[3];

     int s1 = _msize(a[0]);    // s1 = 5
     int s2 = _msize(a[1]);    // s2 = 2
     int s3 = _msize(a[2]);    // s3 = 3

     return 0;
    }


    YHKim

    2012년 11월 20일 화요일 오전 1:30