1

例如:

struct Vertex
{
  int x;
  int y;
};

Vertex makeVertex(int xpos, int ypos)
{
  Vertex tmp = {xpos, ypos};
  return tmp;
}

如果我这样做,我会得到内存泄漏吗?:

Vertex a = makeVertex(30,40);
a = makeVertex(5, 102);
4

1 回答 1

5

这是完全安全的。

内存泄漏是由(错误)使用指针和内存分配引起的(通常调用new之后没有调用delete,但更复杂的情况通常是真正问题发生的地方 - 例如,没有完成“三(或五)规则" 在处理调用new) 的类时。

当然,当使用 C 风格的调用malloc和兄弟代码时,代码应该有相应的free调用。

于 2013-08-05T11:07:53.783 回答