【发布时间】:2016-08-13 10:36:31
【问题描述】:
我有两个指针:
1.
double *a, *b;
a = (double *) malloc (N*sizeof (double));
b = (double *) malloc (N*sizeof (double));
指向我使用malloc 分配的巨大内存空间。并赋值。
如果我这样做了,
a=b;
a 指向数组 b 指向。
分配给 a 的内存会怎样?正在遵循更好的选择:
free(a);
a=b;
free(b);
或只有
a=b;
free(b);
或 a=b; 免费(一);
还是违法?
- 如果 a 是全局的,b 是局部的,会有什么不同吗?
【问题讨论】:
-
请不要双重标记 C 和 C++
-
“分配给 a 的内存会发生什么变化?” 它泄漏了。
-
抱歉打错了。更正
-
I know there are std::vectors that make things easier.在 C 中没有 std::vector -
@πάνταῥεῖ 避免泄漏的最佳方法是什么。我的意思是哪个免费更好?