教えて! goo のコンテンツに対する取り組みについて

以下の配列を使用した線形リストのプログラムで実行したところエラーが出ました。
エラーが出ないようにするには、どのように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;
| ^~~~~~~~

教えて!goo グレード

A 回答 (2件)

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



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

だとか。
    • good
    • 0

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


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

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

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

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

教えて!goo グレード

このカテゴリの人気Q&Aランキング