c++ - 从函数返回后指针为 NULL

标签 c++ function pointers

我将 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/

相关文章:

c++ - 识别应用程序的架构

c++ - 从 ‘char*’到 ‘char’的无效转换[-fpermissive]如何打印?但是在变量里面

c++ - 声明 double* 数组时出现损坏的堆错误

c++ - 为什么在限定的依赖名称之前需要关键字 "typename",而不是在限定的独立名称之前?

excel - 用户窗体中控件的 VBA 函数

java - 迭代函数列表时仅调用一次 Java 8 函数

内存可能是问题吗?

c++ - 数组索引和地址返回相同的值

c++ - long long 在 32 位机器上的实现

c++ - 将任何泛型函数作为 C++ 参数传递