에러좀 .. 봐주세요..

하하의 이미지

int main() {
    int **arrayCompany;
    int **arrayGrade;
    int **arrayMaxscore;
    int i;

    for(i=0; i<5; i++) {
        (arrayCompany[i]) = (int *)malloc(sizeof(int));
        (arrayGrade[i]) = (int *)malloc(sizeof(int));
        (arrayMaxscore[i]) = (int *)malloc(sizeof(int));
    }

    for(i=0; i<5; i++) {
        free(arrayCompany[i]);
        free(arrayGrade[i]);
        free(arrayMaxscore[i]);
    }
}

위 코드를 실행하면 에러가 납니다.

왜 그런가요? 고수님들의 속시원한 답변 부탁드립니다.

neohwang의 이미지

할당되지 않은 곳에 값을 넣을려고 하니.. 당근.. 에러지요...

int *arrayCompany[5];

이런식으로 바꾸세요.

sozu의 이미지

다음과 같이 고치셔도 됩니다.

int main() {
    int **arrayCompany;
    int **arrayGrade;
    int **arrayMaxscore;
    int i;
   
    arrayCompany = (int **)malloc(sizeof(int *) * 5);
    arrayGrade = (int **)malloc(sizeof(int *) * 5);
    arrayMaxscore = (int **)malloc(sizeof(int *) * 5);
    for(i=0; i<5; i++) {
        (arrayCompany[i]) = (int *)malloc(sizeof(int));
        (arrayGrade[i]) = (int *)malloc(sizeof(int));
        (arrayMaxscore[i]) = (int *)malloc(sizeof(int));
    }

    for(i=0; i<5; i++) {
        free(arrayCompany[i]);
        free(arrayGrade[i]);
        free(arrayMaxscore[i]);
    }
    free(arrayCompany);
    free(arrayGrade);
    free(arrayMaxscore);
}

-----------
청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 법
http://sozu.tistory.com