私はCプログラミングの初心者です。私は宿題のためのいくつかの機能/手順を書かなければならず、教授によって与えられたmakeテストでそれらをテストしなければならない。c警告 - 互換性のないポインタ型から 'insert'の引数1を受け取ります
私は、2つの要素を持つ構造体を持っています。最初の要素はリストへのポインタで、2番目の要素はリストのソート順の種類です。データ構造体は次のとおりです。
/* order type
NOTORD = no order
TIME = ordered by increasing time
POSITION = ordered by increasing position */
typedef enum {NOTORD=0, TIME=1, POSITION=2} ord_t;
typedef struct elem {
double position;
double time;
struct elem * next;
} elem_t;
typedef struct {
elem_t * head;
ord_t ord;
} lista_t;
私は、要素の種類(入力によって与えられる)を順序の種類に応じて挿入する必要があります。ここに私のコードです:
void inserisciInTesta(lista_t *l, elem_t *el) {
el->next=l->head;
l->head=el;
}
void inserisciTime(lista_t * l, elem_t* pelem) {
if(l->head->time >= pelem->time)
inserisciInTesta(l, pelem);
else
inserisciTime(l->head->next, pelem);
}
void inserisciPosition(lista_t * l, elem_t* pelem) {
if((l->head)->position >= pelem->position)
inserisciInTesta(l, pelem);
else
inserisciPosition(l->head->next, pelem);
}
int inserisci(lista_t * l , elem_t* pelem) {
if(l->ord==TIME) {
inserisciTime(l, pelem);
return 0;
}
else if(l->ord==POSITION){
inserisciPosition(l, pelem);
return 0;
}
else {
inserisciInTesta(l, pelem);
return 0;
}
}
テストを作り、私はこれらの警告を得る:
raggi.cを:機能 'においてinserisciTime':
raggi.c:42:27:警告:互換性のないポインタ型から 'inserisciTime' の引数1を通過[-Wincompatibleポインタ・タイプ]
inserisciTime(l->head->next, pelem); ^
raggi.c:38:6:注:予想「lista_ T * {別名構造体*}構造体ELEMの*」が、引数がタイプである ''
空隙inserisciTime(lista_t * 1、elem_t * pelem){ ^
raggi.c:関数で 'inserisciPosition':
raggi.c:49:31:警告:互換性のないポインタ型から 'inserisciPosition' の引数1を通過[-Wincompatibleポインタ・タイプ]
inserisciPosition(l->head->next, pelem); ^
raggi.c:45:6:注:予想される 'lista_t * {aka struct *}'ですが、引数の型は 'str UCTのelem *」
私のコードが間違っている何のボイドinserisciPosition(lista_tの*のL、elem_t * pelem){ ^
?手伝ってくれてありがとう。
警告は静かではありません: "*'引数1 ...互換性のないポインタ型 '*"? – alk
また、ほぼ同じタイトルの質問がたくさんありますが、これは非常に警告的です。これは複製です。 – alk