讓我們有一些指針的結構中,像tm
:複製對象
time_t timestamp = time(NULL);
tm* now = localtime(×tamp);
要創建一個指向在自動存儲器的副本,由值複製可用於:
tm copy = *now;
tm* next = ©
// next points to a copy in memory
但爲什麼這個快捷方式不會將該值複製到新的內存塊? (gcc編譯器)
tm* next = &(*now);
// next points to the address of now
這聽起來很平凡,但我不確定背後的機制。爲什麼有差異?
是否真的有可能使用指針複製值我知道它只參考一些數據的內存地址 – Shushant
看來你需要閱讀(或重讀)一本好書C.這裏是一個[列表](http:///stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)讓你開始。 – RedX
C中沒有「自動內存」(至少不是你想要使用它的方式);你必須以某種方式分配內存,'tm * next = ...'將只爲指針分配內存,*不爲結構分配內存。 –