プロが教えるわが家の防犯対策術!

以下の配列を使用した線形リストのプログラムで実行したところエラーが出ました。
エラーが出ないようにするには、どのようにcelldataの配列を宣言すればよいですか。
#include <stdio.h>
int first = 0;
int printall() {
int now = first;
while (now != -1) {
printf("%d\n", celldata[now].data);
now = celldata[now].next;
}
}

int main() {
celldata[0].data = 999;
celldata[0].next = 1;
celldata[1].data = 1;
celldata[1].next = 2;
celldata[2].data = 2;
celldata[2].next = 1;
printall();
}

エラー: 'celldata' が宣言されていません (この関数内での最初の使用)
8 | printf("%d\n", celldata[now].data);
| ^~~~~~~~
備考: 未宣言の識別子は出現した各関数内で一回のみ報告されます
関数 'main' 内: エラー: 'celldata' が宣言されていません (この関数内での最初の使用)
14 | celldata[0].data = 999;
| ^~~~~~~~

A 回答 (2件)

構造体についての知識が必要です。


書籍やネットで調べてみれば良いです。簡単に見つかります。

配列変数についても知らないのだとしたら調べる必要があります。

あと、このままだとprintall()が無限ループするので実行前にデータを整えといた方が良いです。
    • good
    • 0

例えば、3行目のグローバルスコープで、



struct{int data, next;} celldata[3];

だとか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!