|
1
3
不,不是。
上述代码将固定地址返回给
常数
字面意义的
它是 不 内存的动态分配。 正在执行
将打印
表示“true”,返回的两个地址相同。 打开“ 康斯特内斯 "
更好地反映
上述代码将地址返回到
新分配的
已复制的内存区域
*1: 至少“不同”,只要之前调用 测试2() 还没有 免费() ed已经
这
是
内存的动态分配。因此,需要调用
正在执行
将打印
表示“false”,返回的两个地址不同。 为了完整性:为了避免泄漏,请按照上面的代码片段执行
从形式上讲,这两个代码片段的代码都是正确的。 使用哪一个以及使用是否“安全”完全取决于用例和上下文。 |
|
|
2
2
是的,只要您不想修改
答案是- 不
这个
|
|
|
3
1
是的,除非您尝试更改字符串。实际上没有分配,因此每次函数都会返回指向内存中相同位置的完全相同的指针。
不,是
不是,但之后仍需要释放内存
对于
|
|
|
4
0
在这两种情况下,
在第一个块中,返回指向
在第二个块中,返回指向
堆
. 您有责任使用
您可以随时进行自己的测试:
|