我有这个
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
我在这里错过了一些令人目眩的事吗?任何澄清将不胜感激!