2016-09-08 20 views
-3

リンクリストを使用して、キューに実装する際に問題が発生しました。私はstackoverflowや他のウェブサイトでも、他の多くの質問を読んできましたが、私のコードのこの問題をまだ解決する方法はまだ分かりません。誰でも、どうぞ、助けてください。 ここで、それはC言語で私のコードです:エラー:不明な型名と警告:暗黙の関数宣言

ので
#include <stdio.h> 
#include <stdlib.h> 

struct elem{ 
    int n; 
    elem *prox; 
}; 

struct fila{ 
    elem *inicio, *fim; 
}nop; 

void iniciar(fila *d){ 
    d->inicio = (elem*) malloc(sizeof(elem)); 
    d->fim = (elem*) malloc(sizeof(elem)); 
    d->inicio->prox = d->fim; 
    d->fim->prox = NULL; 
} 

void inserir(fila *d, int x){ 
    elem *novo = (elem*) malloc(sizeof(elem)); 
    novo->n = x; 
    novo->fim->prox = NULL; 

    if(d->inicio->prox == NULL) 
     d->inicio->prox = novo; 
    else{ 
     d->fim->prox = novo; 
     d->fim = novo; 
    } 
} 

void deletar(fila *d){ 
    if(d->inicio->prox = NULL) 
     printf("Lista vazia") 
    else{ 
     elem *apg; 
     apg = d->inicio->prox; 
     d->inicio->prox = apg->prox; 
     printf("%d", d->n); 
     free(apg); 
    } 
} 

int main(){ 
    int x; 

    iniciar(&nop); 

    scanf("%d", &x); 

    inserir(&nop, x); 

    deletar(&nop); 

    return 0; 
} 
+0

こんにちは。この質問には十分な詳細がありません。質問の本文にエラー情報を入れ、タイトルを使用して一般的な説明をしてください。また、あなたが試したことのいくつかの例を挙げてください。適切な文脈なしに質問に答えることは本当に難しいです。 – jaydel

+0

1)Cで 'typedef'を使う必要があります。 – BLUEPIXY

+0

あなたのコードをコンパイルしようとしました。それは論理的ではありませんが(あるいはそれかもしれませんが)、コンパイルさえしません。すべてのコンパイルの問題を最初に修正し、本当に間違っているもの、間違っている箇所、関連するコードを記述し、最小限の作業例を作成するという、本当の疑問を持ち帰りましょう。私はあなたに私達に与えたものとのダースかそれ以上の編集問題を得ます。それまでは、私はあまりにも広いとして質問を閉じるために投票する。また、typedefについても読むべきです – LBes

答えて

0

、質問はかなり曖昧である、しかし、私はあなたがタグを取得し、typedefでの混乱しているということである、これで1 problmeを参照ください。例:あなたがタグとしてFILAが定義されているため

void inserir(fila *d, int x) 

は実際に

void inserir(struct fila *d, int x) 

として定義する必要があります。他の代替は、あなたがタイプ名としてelemfilaを使用しているため、このコードのエラーのほとんどがある

typedef struct elem{ 
int n; 
struct elem *prox; 
} element; 

typename struct { 
element *inicio, *fim; 
}fila nop; 
0

(以下liek)のtypedefキーワードで構造FILAを宣言することです。これらのタイプは定義されていません。 structタイプを参照する場合は、接頭辞としてstructキーワードを付ける必要があります。彼らは単に型の名前によって参照することができるように、

あなたはそれぞれについてtypedefを追加することでこれを回避することができます

typedef struct elem elem; 
typedef struct fila fila; 

が含まれた後、ソースファイルの先頭に次の行を入れてください。それはコンパイルの問題の大半を解決します。残りはあなた自身を理解できるはずです。

+0

私はこれまでに試しましたが、それでも問題は解決しませんでした。 –

+1

@JeffersonCarlosLimadaCosta問題をすべて解決するわけではありません(あなたも無効なメンバーを参照しています、セミコロンがありませんなど)。質問に記載したものを修正します。新しいエラーを理解できない場合は、変更されたコードで質問を更新します(ただし、既存のコードは削除しないでください)。 – dbush

関連する問題