1

複数の .c ファイルで使用できる変数を宣言しようとしています。これは、構造体へのポインターの malloced 配列です。

私が理解していることから、ヘッダーファイルでexternで宣言する必要がありますが、ヘッダーファイルでmallocできないため、ヘッダーファイルで宣言してから.cファイルでmallocしますか? これがどのように行われるかわかりません。

4

7 に答える 7

0

はい、ヘッダーで宣言しmalloc、.c ファイルで宣言します。freemalloced ポインターにはスコープ自体がなく、 dの場合にのみ割り当てが解除されます。したがって、プログラム全体でポインターを使用できます。

于 2013-05-01T11:03:45.937 に答える
0

ヘッダー ファイルで、ポインターを宣言します。ポインターを参照するすべての .c モジュールにヘッダーを含めます。

extern struct yourstruct *ps;

次に、最も適切な .c モジュールで変数を定義します

struct yourstruct *ps;

ps = malloc(....
于 2013-05-01T11:07:24.433 に答える
0
FILE **file_array=NULL;

function(){
    file_array = malloc(size*sizeof(FILE*));
}
于 2013-05-01T11:07:38.637 に答える
0

cファイルでmallocし、ヘッダーファイルで宣言する必要があります。また、そのアクセスと割り当て解除にも注意する必要があります。無料で一度だけ割り当てを解除する必要があります。おそらく、プログラムの実行の最後に。また、複数のファイルでアクセスする前に、ガード条件 (null のチェック) を入れる必要があります。

于 2013-05-01T11:07:54.560 に答える