假设我有一个表示 PDF 文档pdf
的结构和一个表示其中一个页面的结构pdf_page
:
typedef struct pdf_page {
int page_no;
pdf_page *next_page;
char *content;
} pdf_page;
typedef struct {
pdf_page *first_page, *last_page;
} pdf;
从我的main()
,我打电话create_pdf_file(pdf *doc)
:
void main() {
pdf doc;
create_pdf_file(&doc);
// reading the linked list of pages here
}
假设create_pdf_file
是这样的:
void
create_pdf_file(pdf *doc) {
for (int i = 0; i < 10; i++) {
pdf_page p;
p.page_no = i;
p.contents = "Hello, World!";
doc->last_page->next_page = p;
}
}
(这只是一个示例源代码,因此没有显示列表处理。显然,需要先设置first_page
andlast_page
成员。)pdf
我的问题:如果我在调用 mydoc->first_page
之后访问 - 以及链表中的其他页面 -是否有可能因为“将局部变量从其上下文中取出”而出现分段错误?create_pdf_file()
main()
p
(我不确定我是否保证相应的内存位置不会用于其他用途。)
如果是这样,我该如何避免这种情况?
谢谢。