我有这个
func createPointerToInt() *int {
i := new(int)
fmt.Println(&i);
return i;
}
func main() {
i := createPointerToInt();
fmt.Println(&i);
}
返回的值是
0x1040a128 0x1040a120
我希望这两个值是相同的.我不明白为什么有8字节的差异.
在我所看到的等效C代码中:
int* createPointerToInt() {
int* i = new int;
printf("%#08x\n",i);
return i;
}
int main() {
int* r = createPointerToInt();
printf("%#08x\n",r);
return 0;
}
返回的地址是相同的:
0x8218008 0x8218008
我在这里错过了一些令人目眩的事吗?任何澄清将不胜感激!