在c++中,改变指针返回后指向的对象
Change what a pointer points to after you return it in C++
我正在做一个c++项目,我需要一点完整性检查和帮助。我想返回一个void*指针,指向数组中的内存位置(我将通过<>之前Void *指针= (Void *)(数组+索引);之前)。数组是由字符组成的,因此索引/字节编号工作得非常好。
但是,我希望能够在稍后更改此位置指向的内存(数组中的不同位置)作为对代码中某些条件的响应。有办法做到这一点吗?我正在摆弄void**指针,并试图返回对内存中存储指针的位置的引用,因此我可以更改存储指针本身的内存并更改读取的指针。但是,我在语法上遇到了麻烦,而且我不完全确定这是可能的。
我在相当严格的约束下工作,我不能回避我必须返回void*指针的事实,否则我认为可能有一些更好的方法来解决这个问题。
任何帮助都将非常感激!
您可以简单地重新分配指针:
char array[1200];
void * p = array + 17;
// later:
p = array + 29;
(不需要强制类型转换,因为对象指针可以隐式地转换为void指针)
指向其他地方只要将指针转换回char*,进行指针运算,就可以了。
char *ptr_tmp = (char*)pointer;
ptr_tmp += 100;
pointer = (void*)ptr_tmp;
这就是我理解的你的问题所在?!
相关文章:
- 如何通过另一个对象中的命令正确地从一个对象返回数据
- 如何访问从 COM 对象返回的 VARIANT 数据类型中的安全数组C++?
- 从我的对象返回静态数组
- 将unique_ptr作为<Object>unique_ptr<常量对象返回>
- 从右值对象返回成员
- 视觉对象 返回 C++ 中的双精度值
- 为什么类型为 sf::Text 的对象返回不同的 getPosition().y 和 getLocalBounds().
- std::min_element 从类对象返回意外结果
- C++无效的对象返回语义
- const引用是否延长临时对象返回的临时对象的寿命
- 将 NULL 作为对象返回时未收到任何警告
- 如何在 C# 中从 com 对象返回数组(double[])
- 从重载运算符返回引用,并使用临时对象返回表达式
- Cin 对象返回值 c++
- 将变量作为类对象返回
- 使用可更改对象返回只读的最佳方法是什么
- 如何在Cython中从另一个包装对象返回包装的c++对象
- 当对象返回时,c++动态数组被清除
- 从带有动态字段的函数、对象返回
- 从堆栈上的匿名对象返回对*this的引用