現状、関数は自身の型(int/ptr)を保持していないため、f() + 1の箇所で正常に計算されない。
int *f() {
int *p;
alloc4(&p, 1, 2, 4, 8);
return p;
}
int main() {
return *(f() + 1);
}
理由
<ptr> + <int>と<int> + <int>で区別している
<ptr> + 1は<ptr>アドレスを(現状では)1 Byte文ずらすため、内部では<ptr> + 8とする必要がある
- 関数の場合、自身の型を保持していないため、うまくいかない(変数は問題なし)