【问题标题】:Letting 2 pointer pointing to same address让2个指针指向同一个地址
【发布时间】:2018-11-03 18:40:56
【问题描述】:

刚开始学习数据结构,被指针搞糊涂了。

typedef struct{
    int* id;
}book;

我通过malloc()创建了两个书本变量

book* A;
A=(book*) malloc(sizeof(book)*2)
int bookid = 1234;

我怎样才能让A[0].idA[1].id 指向book id,以实现当我更改其中一个时,另一个也会更改?

【问题讨论】:

  • 为什么你想要一个指向id的指针?这对我来说毫无意义。最好将 id 成员设为非指针。
  • @Someprogrammerdude 我想只是为了举例。
  • 搞乱指针真的很危险。为什么不应该只使用“引用”呢?
  • @Raindrop7 这不是c++ 而是c

标签: c pointers data-structures


【解决方案1】:

你会的

A[0].id = &bookid;

A[1].id = &bookid;

& 符号获取变量的地址。

【讨论】:

  • 这里有一个非常重要的警告你真的应该提到:变量bookid 的生命周期,如果它在A 的生命周期结束之前结束会发生什么。
猜你喜欢
  • 2019-05-10
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
相关资源
最近更新 更多