0

なぜこれが機能するのかわかりません:

void main() { 
    int *  b;
    b = (int *)malloc(sizeof(int));
    *b = 1;
    printf("*b = %d\n", *b);
}

これはそうではありませんが(のセグメンテーション違反を取得しますmalloc()):

void main() {

    int ** a;
    int    i;

    for (i = 0; i<= 3; i++) {
        a[i] = (int*)malloc(sizeof(int));
        *(a[i]) = i;
        printf("*a[%d] = %d\n", i, *(a[i]));
    }
}

私が見つけたので、最初の例a[i]と同じです。b

ところで、a[i]は に等しい*(a+i)ですよね?

4

4 に答える 4