Hallo an alle!
Ich habe folgendes Quellcode bisher:
#include
typedef struct {
char int[100];
int id;
struct s\_t \*next;
} s\_t;
void add(s\_t \*kopf, s\_t \*ptr) {
ptr = kopf;
kopf = (s\_t\*) malloc(sizeof(s\_t));
kopf-\>next = ptr;
}
int main(int argc, char\* argv[]) {
s\_t \*kopf=NULL, \*ptr;
add(kopf, ptr);
return 0;
}
-> In diesen beiden Zeilen:
kopf = (s\_t\*) malloc(sizeof(s\_t));
kopf-\>next = ptr;
erscheinen diese Warnings:
warning: incompatible implicit declaration of built-in function ‘malloc’
warning: assignment from incompatible pointer type
Aber warum? Was mache ich denn da falsch? Will eine linear verkettete Liste bauen… Jemand eine Idee?
Gruß PHANTOM
Fritze
16. November 2008 um 19:40
3
Hallo,
Aber warum? Was mache ich denn da falsch?
Ich vermute, Du hast das #include vergessen.
Gruß
Fritze
Fritze
16. November 2008 um 19:40
4
Vielleicht #include ?
Grüße,
Sebastian
Sorry, da warst Du wohl schneller
Gruß
Fritze
Hallo!
Ich vermute, Du hast das #include vergessen.
Ja, stimmt!
Aber eine warning bleibt noch:
warning: assignment from incompatible pointer type
-> Diese erfolgt in der Zeile
kopf->next = ptr;
Gruß PHANTOM
Vielleicht #include ?
Ja, das fehlt, stimmt. Aber ich habe gerade auch im anderen Beitrag geschrieben, eine Warning bleibt immernoch bestehen:
warning: assignment from incompatible pointer type
-> Diese erfolgt in der Zeile
kopf->next = ptr;
Gruß PHANTOM
Hallo PHANTOM,
Aber eine warning bleibt noch:
warning: assignment from incompatible pointer type
-> Diese erfolgt in der Zeile
kopf->next = ptr;
Das Problem liegt hier:
typedef struct {
char int[100];
int id;
struct s\_t \*next;
} s\_t;
in der Zeile
struct s_t *next;
kennt der Compiler den Typen s_t noch gar nicht.
typedef struct \_s\_t {
char int[100];
int id;
struct \_s\_t \*next;
} s\_t;
MfG Peter(TOO)
Ah, okay, danke dir für deine Hilfe, so gehts…
Gruß PHANTOM
Fritze
17. November 2008 um 16:42
9
Hallo,
ich finde auch die Formulierung
char int[100];
nicht so glücklich. „int“ ist normalerweise ein Variablentyp und reserviert. Ich würde das nicht für einen Variablennamen nutzen und bin mir nichtmal sicher, ob das alle Compiler so schlucken.
Gruß
Fritze
char int[100];
nicht so glücklich. „int“ ist normalerweise ein Variablentyp
und reserviert. Ich würde das nicht für einen Variablennamen
nutzen und bin mir nichtmal sicher, ob das alle Compiler so
schlucken.
-> Stimmt, ich werde es korrigieren!
Gruß PHANTOM