【发布时间】:2014-04-13 02:15:47
【问题描述】:
在 C 编程中,我想知道以下指针分配:
struct transaction_t {
int id;
char *name;
};
typedef struct transaction_t* transaction;
transaction pointer1 = malloc(sizeof(struct transaction_t));
transaction pointer2 = pointer1; /* is this a valid assignment? */
我的问题是:指针 2 指向的地址是否与指针 1 指向的地址相同?我可以使用pointer2执行以下操作吗?
pointer2->name = "Chase Bank"
pointer2->id = 100;
为了将指针 1 关联到指针 2,我应该先为指针 2 分配内存吗?
【问题讨论】:
-
是的,pointer1 和pointer2 指向同一个内存空间,不,如果前面的语句是你想做的,你不必malloc 内存。
-
是的,你的理解是正确的。
-
是的。在这里最简单的做法就是尝试一下。
-
建一栋房子,把它的地址放在盒子1。现在把盒子1里的东西复制到盒子2里。它们是否包含同一个房子的地址? (是的。)在将地址复制到方框 2 之前,您必须建造另一所房子吗? (编号)