Если выполняется следующее, будут ли скопированы фактические данные в указателе или сам указатель?
void nav_runGpsSystem(GPSLocation *dest)
{
GPSLocation *destination = malloc(sizeof(GPSLocation));
destination = dest;
Где GPSLocation является следующим
typedef struct
{
double latitude;
double longitude;
}
GPSLocation;
Проблема в том, что GPSLocation
, который создается, указатель, создается за пределами подсистемы, которая его использует, но он все еще на той же плате (pandaboard под управлением Ubuntu Netbook Edition) Я не хочу, чтобы данные были потеряны, так как указатели как-то повредились, поэтому я хочу скопировать данные, на которые указывал первый указатель, чтобы система, создавшая их, могла освободить указатель, когда они захотят.
EDIT
После прочтения ответов ясно, что я должен разыскивать, используя
*destination = *dest
Так что если я захочу передать данные в потоки
как так
void *startgpswatchdog(void *ptr)
{
GPSLocation *destination;
destination = (GPSLocation *) ptr;
Если у меня есть данные, скопированные в мою систему сейчас, есть ли необходимость снова копировать данные в pthread или достаточно передать только указатель, так как он уже расположен неправильно, и потоки разделяют то же пространство памяти?