我正在开发一个C ++项目,我需要一点健全性检查和帮助。我想返回一个void *指针指向数组中的内存位置(我将这样做
void* pointer = (void*) (array+index);)。数组是字符,所以索引/字节编号非常好。
但是,我希望能够更改此位置指向的内存(数组中的不同位置)作为对代码中某些条件的响应。有没有办法做到这一点?我正在搞乱void **指针并试图返回对存储指针的内存中的点的引用,所以我可以只更改指针本身存储的内存并更改读取的指针。不过,我在语法方面遇到了麻烦,我并不完全确定它是可能的。
我在相当严格的约束下工作,我无法解决这个事实,即我必须返回void *指针,否则我认为可能有一些更好的解决这个问题的方法。
非常感谢任何帮助!
答案 0 :(得分:1)
您可以简单地重新指定指针:
char array[1200];
void * p = array + 17;
// later:
p = array + 29;
(不需要强制转换,因为对象指针可以隐式转换为void指针。)
答案 1 :(得分:0)
指向其他地方只是将指针强制转换为char *,做指针算术,就是这样。
char *ptr_tmp = (char*)pointer;
ptr_tmp += 100;
pointer = (void*)ptr_tmp;
这是我明白你的问题是什么?!