让我们有一些指针的结构中,像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 = ...'将只为指针分配内存,*不为结构分配内存。 –