MY IT

calloc으로 2차원 배열 만들기

메롱씨티 배드맨 2006. 4. 11. 12:27

#include <stdio.h>

#include <malloc.h>

 

int main(void)

{

    unsigned char *s_p;

    int s_count, s_index;

 

    /* 이것은 unsigned char s_p[10000][1234]; 로 생각하면..*/

    s_p = (unsigned char *)calloc(10000, 1234);    

 

    for(s_count = 0;s_count < 10000;s_count++)

    {

        for(s_index = 0;s_index < 1234;s_index++)

        { 

            (void)fprintf(stdout, "set %d, %d (*(%p))\n", s_count, s_index, &s_p[(s_count * 1234) + s_index]);

            s_p[(s_count * 1234) + s_index] = 0;

        }

    } 

 

    free((void *)s_p);

 

    return(0);

}

 

........................................................................................................



배열 메모리를 확장하고 싶을땐..

 

s_p = realloc(s_p, sizeof(s_p) + (1234 * x)));

 

로 추가 할 수 있다.