我有一个指向int的指针 .
int index = 3;
int * index_ptr = &index;
index_ptr
是类 IndexHandler
的成员变量 .
A类有一个IndexHandlers的std :: vector,Avector . B类有一个指向IndexHandlers,Bvector的指针的std :: vector,我将其设置为指向A类向量中的项目,因此:
Bvector.push_back(Avector[i].GetPtr())
和我一起到目前为止?
我想检查一下,当我在Bvector中解析指针,并检索内部IndexHandlers index_ptr
时,它们指向与A类相同的 index_ptr
...
如何检查它们是否指向相同的内存地址?...如何打印两组指针所指向的值的地址?
5 回答
要打印int指针的地址和int指针指向的int值,请使用
一个非常'C'的方法是使用printf . 像这样:
上面假设A和B是指针类型 .
非迭代器方法将它们并排打印出来:
这将打印出每个指针的指针值 .
但是你应该注意一件事 . 如果IndexHandler中的指针指向IndexHandler中的值,那么如果向量调整大小,它就会变为无效,如果在该索引处插入或删除了某个项,则指向索引上方任何内容的指针将失效 . 因此,保持指向向量中项目的指针通常是一个坏主意,如果你想这样做,那么最好使用std :: list容器(这不会使指向列表中项目的指针无效)您插入或删除新值)
在课堂内: