从c++函数中设置指针变量

Setting pointer variable from function C++

本文关键字:指针 变量 设置 c++ 函数      更新时间:2023-10-16

如何从另一个函数中调整char*指针?现在我在我的代码,它看起来像地址同步,所以我觉得我做错了什么,请帮助。

void adjustVar(char* pointer, size_t i) {
   //pointer address at this point = 0x00000000
   pointer = new char[i];
   //pointer address at this point = 0x003db708
}
int main(void) {
   char* p = nullptr;
   size_t size = 5;
   //p Address at this point 0x00000000
   newBuffer(p, size);
   //p Address at this point 0x00000000
   delete[] p;
   return 0;
}

我可以想到以下选项:

选项1:返回adjustVar分配的内存

char* adjustVar(size_t i) {
   char* pointer = new char[i];
   return pointer;
}

选项2:使用指针引用

void adjustVar(char*& pointer, size_t i) {
   //pointer address at this point = 0x00000000
   pointer = new char[i];
   //pointer address at this point = 0x003db708
}