PDF ドキュメントpdfを表す構造と、そのページの 1 つを表す構造があるとします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とlast_pageのメンバーをpdf最初に設定する必要があります。)
私の質問:doc->first_pageリンクされたリスト内の他のページと同様にcreate_pdf_file()、 my で呼び出した後にアクセスすると、「ローカル変数をそのコンテキストから取り出すmain()」ためにセグメンテーション違反が発生する可能性はありますか?p
(対応するメモリ位置が他の目的で使用されないことを保証したかどうかはわかりません。)
もしそうなら、どうすればこれを回避できますか?
ありがとう。