在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? */
我的问题是:pointer2指向与pointer1指向相同的地址吗?如何使用pointer2执行以下操作?
pointer2->name = "Chase Bank"
pointer2->id = 100;
为了将指针1关联到指针2,我应该首先为指针2分配内存吗?
分配后,他们都指向同一个地方。
想象您和您的朋友在一个房间里,有人把一个空盒子带进房间,您指着它。您现在指向已分配的内存。如果您的朋友也指向它,那么您俩都指向相同的位置。
分配给任何一个都将其放在同一框中。
您也可以覆盖框中的内容。
在考虑C中的指针及其工作原理时,确实可以帮助您想到实体指向和框。如果没有在页面上绘制方框和箭头的地方,我将永远无法写出我的第一个链表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句