Скажем, у меня есть эта структура в ANSI C:
typedef struct _point
{
float x;
float y;
} Point;
и эту функцию для создания этой структуры:
Point createpoint(float x, float y)
{
Point p;
p.x = x;
p.y = y;
return p;
}
Это позволяет мне создать структуру с этой функцией i.e:
int main()
{
Point pointOne = createpoint(5, 6);
Point pointTwo = createpoint(10, 4);
float distance = calculatedistancefunc(pointOne, pointTwo);
/* ...other stuff */
return 0;
}
теперь мой вопрос; кто-то сказал мне, что этот код недействителен, потому что структура не получает malloc'd в функции createpoint (float x, float y) до того, как она будет возвращена, и что структура будет удалена. Однако, когда я использую свою структуру как это, она, похоже, не удаляется.
Итак, мой вопрос: Нужно ли мне перестраивать эту структуру и почему?/почему бы и нет?