なぜこれが機能するのかわかりません:
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)
ですよね?