gpt4 book ai didi

c - 指向仅存在于函数 C 中的变量

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:01 24 4
gpt4 key购买 nike

我目前正在尝试通过阅读“The C Programming Language”来学习 C。我正在尝试计算诸如指针之类的东西,但我遇到了一个我无法理解的例子。
Example .
据我所知,一个指针数组作为参数传递给给定函数,它指向在函数内创建的变量。

lineptr[nlines++] = p;

这只是因为之前使用的 alloc 函数才可行吗?这是如何工作的,这是一种安全的编码方式还是应该避免?

最佳答案

正如您所说,进入lineptr 的是一个指针数组。希望它们都是 NULL,否则我们会发生内存泄漏,但我们仍然拥有我们的数组。

p0 | p1 | p2 | p3 |...

alloc 分配一些大小为 len 的内存块(这里的术语非常松散)“存在于”函数之外的某个地方。它返回指向该内存的指针。然后我们可以自由地将这个指针放入数组中。

当函数返回时,调用者将能够通过存储在数组中的指针访问“存在于”函数外部的 alloc 分配的内存。

如果您能更详细地解释为什么您担心这段代码,也许会有更好的答案。

关于c - 指向仅存在于函数 C 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55183149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com