컴퓨터/C_Programing

이중 포인터 동적 할당(malloc) / c언어

김치부침개21 2016. 1. 17. 23:10
반응형
#define rows    5
#define cols    10
 
int main(void)
{
    char **array;
    unsigned int i, j;
 
    /* 행 동적 메모리 할당 */
    array = (char**) malloc(sizeof(char*) * rows);
    if (array == NULL) {
        printf("Not enough memory\n");
        return;
    }
    /* 열 동적 메모리 할당 */
    for (i=0; i<rows; i++) {
        array[i] = (char*) malloc(sizeof(char) * cols);
        if (array[i] == NULL) {
            printf("Not enough memory\n");
            return;
        }
        /* 배열에 값 저장 */
        for (j=0; j<cols; j++)
            array[i][j] = 'a';
    }
    /* 값 출력 */
    for (i=0; i<rows; i++) {
        for (j=0; j<cols; j++)
            printf("%c", array[i][j]);
        printf("\n");
    }
    /* 메모리 해제 */
    for (i=0; i<rows; i++)
        free(array[i]);
    free(array);
 
    return 0;
}
반응형