Search code examples
c++cpointersdangling-pointer

Is it compulsory to initialize pointers in C++?


Is it compulsory to initialize t in the following code, before assigning value to t? Is the code correct?

void swap(int *x, int *y)
{
    int *t;
    *t = *x;
    *x = *y;
    *y = *t;
}

Solution

  • You don't need pointer to begin with:

    void swap(int *x,int *y)
    {
        int t; //not a pointer!
        t=*x;
        *x=*y;
        *y=t;
    }
    int a = 10, b = 20;
    swap( &a, &b); //<-----------note : Needed &
    

    --

    Or maybe, you want the following swap function:

    void swap(int & x,int & y) //parameters are references now!
    {
        int t; //not a pointer!
        t=x;
        x=y;
        y=t;
    }
    int a = 10, b = 20;
    swap(a,b); //<----------- Note: Not needed & anymore!