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
(対応するメモリ位置が他の目的で使用されないことを保証したかどうかはわかりません。)
もしそうなら、どうすればこれを回避できますか?
ありがとう。