在指针中复制数据

jar*_*ryd 4 c pointers

如何复制另一个指针指向的数据?

我有以下内容

void *startgpswatchdog(void *ptr)
{
    GPSLocation *destination;
    *destination = (GPSLocation *) ptr;
Run Code Online (Sandbox Code Playgroud)

这样做会正确吗?

我释放传递给它后传递给线程的数据,所以我需要复制数据.

Mih*_*yan 10

如果要复制数据,则应通过分配新内存malloc,然后通过复制内存memcpy.

void *startgpswatchdog(void *ptr)
{
    GPSLocation *destination = malloc(sizeof(GPSLocation));
    memcpy(destination, ptr, sizeof(GPSLocation));
}
Run Code Online (Sandbox Code Playgroud)

  • +1:但是,答案应该澄清OP的代码导致UB,因为`destination`是一个未初始化的指针. (3认同)