Hallo liebe ngb Community,
ich habe derzeit ein langzeitiges Problem mit einen Programm.
Erstmal etwas Code :
Ein einfaches struct mit einen Index (nr) und einen Pointer auf den Typ char der eine Zeichenkette dynamisch speichert.
Bis hier hin alles easy
[src=c]
typedef struct{
int nr;
char* zk;
}ELEMENT;
[/src]
In der main() wird dann ein struct Pointer deklariert und mit NULL definiert ...
[src=c]
ELEMENT* el = NULL;
[/src]
danach folgt halt eine Eingabe über stdin (zwecks Fileumlenkung) geht auch alles gut ,das Problem kommt erst beim Sortieren...ich sortiere die Liste von Typ struct ELEMENT lexiogr. (also anhand von zk) per Bubblesort.
[src=c]
ELEMENT* bSort(ELEMENT* list,int size){
int i = 0;
int warSortiert = TRUE;
ELEMENT* tmp=(ELEMENT*)calloc(1,sizeof(ELEMENT));
do{
warSortiert = TRUE;
for(i = 0;i < size-1;i++){
if(strcmp(list.zk,list[i+1].zk)>0){
tmp = list; //FEHLER struct ELEMENT* -> struct ELEMENT
list = list[i+1];
list[i+1] = tmp; // hier das gleiche
warSortiert = FALSE;
}
}
}while(warSortiert == FALSE);
return list;
}
[/src]
Der Fehler kommt nur bei tmp = list; und list[i+1] = tmp;
Compilerfehlermeldung:
[src=text]
...\main.c|93|error: incompatible types when assigning to type 'struct ELEMENT *' from type 'ELEMENT'|
...\main.c|95|error: incompatible types when assigning to type 'ELEMENT' from type 'struct ELEMENT *'|
[/src]
Ich hoffe ihr könnt mir helfen ,geht mir wirklich nur um die Zuweisung...ich denke das Problem ist so Trivial...aber ich erkenn ihn einfach nicht nervig...
Vielen Dank schonmal
ich habe derzeit ein langzeitiges Problem mit einen Programm.
Erstmal etwas Code :
Ein einfaches struct mit einen Index (nr) und einen Pointer auf den Typ char der eine Zeichenkette dynamisch speichert.
Bis hier hin alles easy
[src=c]
typedef struct{
int nr;
char* zk;
}ELEMENT;
[/src]
In der main() wird dann ein struct Pointer deklariert und mit NULL definiert ...
[src=c]
ELEMENT* el = NULL;
[/src]
danach folgt halt eine Eingabe über stdin (zwecks Fileumlenkung) geht auch alles gut ,das Problem kommt erst beim Sortieren...ich sortiere die Liste von Typ struct ELEMENT lexiogr. (also anhand von zk) per Bubblesort.
[src=c]
ELEMENT* bSort(ELEMENT* list,int size){
int i = 0;
int warSortiert = TRUE;
ELEMENT* tmp=(ELEMENT*)calloc(1,sizeof(ELEMENT));
do{
warSortiert = TRUE;
for(i = 0;i < size-1;i++){
if(strcmp(list.zk,list[i+1].zk)>0){
tmp = list; //FEHLER struct ELEMENT* -> struct ELEMENT
list = list[i+1];
list[i+1] = tmp; // hier das gleiche
warSortiert = FALSE;
}
}
}while(warSortiert == FALSE);
return list;
}
[/src]
Der Fehler kommt nur bei tmp = list; und list[i+1] = tmp;
Compilerfehlermeldung:
[src=text]
...\main.c|93|error: incompatible types when assigning to type 'struct ELEMENT *' from type 'ELEMENT'|
...\main.c|95|error: incompatible types when assigning to type 'ELEMENT' from type 'struct ELEMENT *'|
[/src]
Ich hoffe ihr könnt mir helfen ,geht mir wirklich nur um die Zuweisung...ich denke das Problem ist so Trivial...aber ich erkenn ihn einfach nicht nervig...
Vielen Dank schonmal