C++ 从函数C设置指针变量++;
如何从另一个函数调整char*指针。现在我在我的代码中,看起来地址正在同步,所以我感觉我做错了什么,请帮助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 =
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 < /代码>,它可以使您免除<代码>删除> /代码>它。