Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我目前正在尝试通过阅读“The C Programming Language”来学习 C。我试图弄清楚诸如指针之类的东西,但我遇到了一个我无法理解的例子。 例子。 一个指针数组作为参数传递给给定函数,据我了解,它指向在函数中创建的变量。
lineptr[nlines++] = p;
由于之前使用了 alloc 函数,这是否可行?这是如何工作的,这是一种安全的编码方式还是应该避免?
正如你所说,进来的lineptr是一个指针数组。希望它们都是 NULL,否则我们会有内存泄漏,但我们仍然有我们的数组。
lineptr
p0 | p1 | p2 | p3 |...
alloc分配一些大小的内存len(这里的术语非常松散)“生活”在函数之外的某个地方。它返回一个指向该内存的指针。然后我们可以自由地将这个指针放入数组中。
alloc
len
当函数返回时,调用者将能够alloc通过存储在数组中的指针访问函数外部“生活”分配的内存。
如果您可以更详细地解释为什么您担心此代码,也许会有更好的答案。