"L-Wert" Fehler in Visual C++

XesperantoX

Mitglied
Hallo,

stehe gerad etwas auf dem Schlauch, haben unten stehenden Code geschrieben und bekomme beim kompilieren für alle drei Zuweisungen folgenden Fehler:

Code:
C:\dabs\testen\main.c(18) : error C2106: '=' : Linker Operand muss ein L-Wert sein
C:\dabs\testen\main.c(19) : error C2106: '=' : Linker Operand muss ein L-Wert sein
C:\dabs\testen\main.c(20) : error C2106: '=' : Linker Operand muss ein L-Wert sein

das Programm sieht folgendermaßen aus:

Code:
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>

struct winner{
	char nation[20];
	char name[20];
	char result[20];
}tmp, first, second, third;

typedef struct winner WINNER;

int main( void){
	char _nation[] = "Deutschland";
	char _name[] = "Müller";
	char _result[] = "9,8m";

	tmp.nation	= _nation;
	tmp.name	= _name;
	tmp.result	= _result;

	return 0;
}

Wäre super wenn mir jemand sagen könnt wo mein Fehler liegt!

Danke
Sascha
 

langer1801

Erfahrenes Mitglied
Hi,
ich denke, das liegt daran, daß du String-Arrays verwendest. Die kann man nicht mit = zuweisen. Da mußt du wohl die bekannten String-Funktionen strcpy usw. verwenden.

Mfg

langer
 

kraenkie

Grünschnabel
Ich bekomme den gleichen Fehler auch immer angezeigt, allerdings versuche ich in einer Funktion den ersten Zeiger einer Liste auf eine andere Adresse umzubiegen.

weiß jemand wo da der Fehler liegt?
 

kraenkie

Grünschnabel
Hier ist noch die Funktion. Hab ich im letzten Beitrag vergessen.

void initList(BIBLIOTHEK *Bib)
{ BIB_LISTE *BibList;
&BibList->pfirst=&Bib->Buch;
printf("Bitte Name der Liste eingeben:\n");
gets(BibList->szName);
}
 

Endurion

Erfahrenes Mitglied
Das müsste *BibList-> heissen.

Allerdings musst du zuerst BibList irgendwie allozieren. In der aktuellen Version greifst du auf einen irgendeinen zufälligen Speicher zu.