C++ 从函数C设置指针变量++;

C++ 从函数C设置指针变量++;,c++,pointers,memory-address,C++,Pointers,Memory Address,如何从另一个函数调整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 =

如何从另一个函数调整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
}

太好了,这正是我想要的。Thanks@WilliamMcCarty,不客气。你为什么要这样做?R Sahu是正确的,但是如果你不知道这个问题的答案,你可能也不想使用
new
。考虑使用<代码> STD::vector < /代码>,它可以使您免除<代码>删除> /代码>它。