我将 int*** 发送给一个函数,该函数完成了它的工作,但是当我尝试在该函数之后的外部使用指针时,它为 NULL。这是函数:
void pointerSort2(int* arr, unsigned int size, char ascend_flag, int*** pointers)
{
int i, j, *temp;
int** sort=new int*[size];
for (i=0;i<size;i++)
sort[i]=&arr[i];
if (ascend_flag==true)
{
for (i=0;i<size-1;i++)
{
for(j=0; j<size-1-i;j++)
{
if (*sort[j]>*sort[j+1])
{
temp=sort[j];
sort[j]=sort[j+1];
sort[j+1]=temp;
}
}
}
pointers=&sort;
}
当我之后尝试使用它时,指针是“0x000000 (???)”
最佳答案
函数参数int*** pointers
是函数的局部变量。该变量将在函数退出后销毁。
我认为不是线
pointers=&sort;
应该有
*pointers = sort;
关于c++ - 从函数返回后指针为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886103/