2016-11-25 13 views
0
#include<stdio.h> 
#include<conio.h> 
#include<stdlib.h> 

typedef struct PROCESS{ 
     int priority; 
     int lifecycle; 
     int ttl; 

}process1,process2,process3,process4,process5,process6; 

main(){ 
     PROCESS *waiting_queue; 
     waiting_queue = process1;  //this is were I get the error. 
     waiting_queue =(PROCESS *)malloc(6*sizeof(PROCESS)); 
     if(!waiting_queue){printf("no memory for waiting queue "); exit(0);} 


     getch();  
} 

私はポインタで構造体配列を作成しようとしています。私はエラーを取得しています。 ';'の前に一次表現が必要です。トークン';'の前の一次式が必要です。トークン

+0

あなたはかなり壊れたように、*型の宣言*と*の構造体*を混合しています。 AFAICT、エラーを取得した行の 'process1'は、構造体ではなく*型*です。文を多少違法にします。 – DevSolar

+0

[Cでmallocの結果をキャストしない](http://stackoverflow.com/q/605845/995714) –

答えて

4

(process1からprocess6)からstructオブジェクトを作成する必要があります。

は私はあなたに例を挙げましょう:あなたはあなたの主な機能であなたのエラーを取得している理由

#include <stdio.h> 
#include <string.h> 

typedef struct student 
{ 
    int id; 
    char name[20]; 
    float percentage; 
} status; 

int main() 
{ 
    status record; 
    record.id=1; 
    strcpy(record.name, "Orcun"); 
    record.percentage = 86.5; 
    printf(" Id is: %d \n", record.id); 
    printf(" Name is: %s \n", record.name); 
    printf(" Percentage is: %f \n", record.percentage); 
    return 0; 
} 

です。ですから、のようなあなたのStructオブジェクトを作成する必要があります。

process1 processOrcun; 

あなたもここで確認することができます:https://www.codingunit.com/c-tutorial-structures-unions-typedef

+0

プロメテウスに感謝! – mfd

3

あなたは複数の問題を抱えているが、あなたのエラーの原因となる1あなたはタイプPROCESSを定義していないということですが、その名前の構造

あなたは構造体の型を定義するためにtypedefを使用し、型名が来る構造の後:あなたは、例えば定義しているため

typedef struct 
{ 
    ... 
} PROCESS; 

あなたが持っているエラーがありますprocess1タイプとすると、代入(型へのポインタを作る)は意味をなさない。


main関数を定義する方法は、他に関連しない問題です。 intを返すように定義する必要があります(明示的に宣言しても明示的に行うのがよい場合でも)。voidには引数または整数、ポインタ配列はのいずれかにする必要があります。あなたの場合、それはのようになります

int main(void) { 
    ... 
    return 0; 
} 
+0

ありがとう、私の友人;私はあなたが指示したようにしたが、同じエラーを出す。 – mfd

+0

@mfd 'waiting_queue'のタイプは何ですか? 'process1'のタイプは何ですか?タイプは互換性がありますか(回答はいいえ)ですか?だからあなたは*同じ*エラーを得ることはできませんが、別のエラーはありません。また、 'waiting_queue'を直接再割り当てするので、その割り当ては役に立たなくなります。 –

+0

のタイプはPROCESSです。あなたのアイデアは私にインスピレーションを与えました。 waiting_queue =&process1;ありがとうございました。 – mfd

関連する問題