![]() |
1
2
您将调用此函数两次:
在这两个调用中,变量(或参数)
不幸的是,编译器不够聪明,无法检测到您正在存储本地变量的地址。当你 返回 本地地址(更容易检测)。
例如,如果你打电话
一个干净的方法是分配动态内存:
当然,当不使用结构时,它需要释放。 |
![]() |
2
1
任何变量在内存中都有一些空间。指针引用该空间。局部变量占用的空间在函数调用返回时被释放,这意味着它可以并且将被重用用于其他事情。因此,对那个空间的引用最终会指向完全不相关的东西。 最好的方法是使用malloc()来保留非本地内存。这里的危险是,您必须释放(free())使用malloc()分配的所有内容,如果忘记了,则会造成内存泄漏。 |
![]() |
3
1
在函数中
您正在分配的地址
最有可能发生的事情
在这种特殊情况下
是用来
|
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 6 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 7 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 7 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 7 月前 |