안될것 같은데 되서 말이야...

struct POS
{
        int x;
        int y;
}

main()
{
        POS pos;
        foo(&pos);

        //pos의 값은?;;
}

void foo(POS *pos)
{
        POS newpos;
        newpos.x = 123;
        newpos.y = 456;
        
        *pos = newpos;
        //memcpy 해야 하는거 아녀?
}

이렇게 저런식으로 = 연산자는 사용하면 안되는거 아닌가?

값이 유지가 안되야 할것 같은데 유지 되니깐 이상해... 문제가 있는 코드 아냐?