このリンクされたリストと宣言を含む C プログラムの header.h ファイルがあります。
typedef struct _seg
{
int bits[256]; // # of bits in array = 256
struct _seg *next; // link to the next segment
} seg;
EXTERN seg *head; // this points to the start of the linked list
私main.c
の には、次のものがあります。
seg * p;
head = NULL;
...
for (i = 0; i < N; i++) { // N is a parameter; irrelevant for this problem
p = ( seg *) malloc(sizeof (seg)); // make a new segment
p->next = head; // add the new segment to the list
head = p;
}
ファイルclearAll()
から関数を呼び出します。関数には次のものがあります。 main.c
functions.c
void clearAll() {
int i;
for (i = 0; i < 256; i++) {
p->bits[i] = 0;
}
}
ビット配列のすべてのビットをクリア (0 に設定) できるようにしたいと考えています。コンパイルするたびに、ステートメント'p' undeclared (first use in this function)
があってもそれを示すエラーが発生します。#include "header.h"
リンクされたリストとその中の配列を参照してアクセスできるようにしたいだけです。
私はこれを正しく行っていますか?