例如:
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);
答案 0 :(得分:5)
这非常安全。
内存泄漏是由(错误)使用指针和内存分配引起的(通常调用new
后没有调用delete
,但更复杂的情况通常是发生真正问题的地方 - 例如,在处理调用new
的类时,未完成“三(或五)规则”。
当然,当使用对malloc
和兄弟姐妹的C样式调用时,代码应该有相应的free
调用。