我正在做一個任務,我的教授給了我們所有我們應該使用的函數原型以及結構定義。何時malloc內存指針返回的結構?
該程序的目的是讀取.vcf(vCard)文件。
我們有一個函數readVcFile,它調用readVcard,它調用適當的函數來讀取每一行並解析它。
下面是相關的函數原型,我的問題:
VcStatus readVcFile(FILE *const vcf, VcFile *const filep);
VcStatus readVcard(FILE *const vcf, Vcard **const cardp);
VcStatus getUnfolded(FILE *const vcf, char **const buff);
我有麻煩搞清楚什麼,是什麼時候分配內存。 據我所知,大多數指針應該是一種返回值的方式。 例如,我已經計算出getUnfolded,它將指針指向字符串,並使用該指針填充字符串中的任何字符。
我更麻煩的是readVcard。
請記住,readVcFile調用readVcard,並且在vcf文件中可以有多個vcards,因此它可能會調用多次,然後再調用一次。現在我的問題是,何時(以及如何)我應該malloc一個vCard。在我打電話給readVcard之前,我是否使用malloc?一旦我在readVcard中,如何訪問該vcard?
這一切都很混亂,所以我很欣賞任何爲我澄清事情的嘗試。
謝謝。
編輯:如果有幫助,vcards的大小可以變化,所以我需要使用malloc。
我們無法確定沒有更多信息,但是您不一定必須使用malloc。這取決於您是否事先知道數據的大小,或者是否足以只選擇一個任意數字作爲最大值 – Falmarri 2011-02-08 15:40:01
我將對此進行編輯。但我需要malloc,因爲vCard的大小各不相同。還有哪些其他信息特別適合您? – Blackbinary 2011-02-08 15:40:50