Возврат указателя malloc

Здесь довольно простой вопрос, я немного не уверен в передаче памяти в C.

Если у меня есть следующий

CGPoint* tileForCoordinates (CGPoint position, short width, short height)
{   
   CGPoint *tileCoordinate = (CGPoint*)malloc(sizeof(CGPoint));
   tileCoordinate->xTile = (position.xPosition / width);
   tileCoordinate->yTile = (position.yPosition / height);

   return tileCoordinate;
}

, и я хотел бы назвать это в другом исходном файле или как-то еще Мог бы я объявить указатель и выше и вернуть его? Если да, то когда я вызываю из другого класса, например

CGPoint *currentTilePosition = tileForCoordinates(curPosition, 50, 50);

Что происходит с указателем, возвращаемым malloc? Следует его освободить или какова история? :)

7
задан jarryd 31 March 2011 в 00:51
поделиться