makes integer from pointer without a cast

Gast #3339654
Lesenswert?

Das kann doch nicht so schwer sein...


Alsa das erste ist ein array dem ich einfach nur eine 0 anhängen möchte.

ein readBuffer[20] = 0; würde es auch tun.

Aber wie sieht hier ein richtiges casten aus?
(ROM *char) ?  (Microchip)

1
char readBuffer[20];
2
readBuffer[20] = "\0";

assignment makes integer from pointer without a cast
Gast #3339736
Lesenswert?

Mein Problem ist am ende folgendes,
ich lese aus einer Datei stueckweise zeug in einen Buffer.
1
 FSfread ((void *)readBuffer, 1, 20, fp);

Bei jedem Aufruf erhöht er auch fp->seek also sprich jeder aufruf liest 
weitere 20 bytes aus der Datei ein.

Die Datei sieht so aus:

DHCP=1
IP=127.0.0.1
....
VAR=200


Da ich aber nur 20 byte in den buffer bekomme muss ich irgendwie 
schaffen das zu parsen das ich die Variablen einzelnd bekomme.
Gast #3340053
Lesenswert?

Simon schrieb:
> Ich glaube sein Problem ist einfach nur das anführungszeichen weil er
> meint das es ein String ist und nicht ein Char '\0'.

Richtig. "\0" ist ein Array aus char, woraus bei der Zuweisung ein 
Zeiger auf char gemacht wird. Diesen Zeiger versuchst du, an deinen 
readBuffer anzuhängen.

> aber kann man das irgendwie auch casten?

Was stimmt denn mit '\0' nicht?

> readBuffer[20] = "\0";

Wenn es unbedingt mit "" sein muß:

readBuffer[20] = "\0"[0];
Gast #3340085
Lesenswert?

Mit "X" wird eine Zeichenkette definiert. Als zwei Einzelzeichen: 'X' + 
'\0'.
Gleiches gilt für "\0" welches als Einzelzeichen '\0' + '\0' darstellt.

Die Zuweisung: xxxx[20] = bezieht sich aber auf ein Einzelzeichen.

Darüber hinaus ist bei:
char XXX [20];
XXX [20]= ?
ein absolutes Tabu, aber eine tolle Möglichkeit ein Programm ins Nirwana 
zu schicken.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren