Zeiger auf 900byte-Char-Array

Gast #364299
Lesenswert?

Hallo!

Kann es sein, dass wenn ich ein Array (String) mittels
volatile unsigned char puffer[900];
definiere und dieses dann mittels einer Funktion über einen Zeiger
bearbeiten will, ich nur auf die ersten 256Bytes zugriff habe (wegen
char)?

Konkret:
--------

Aufruf mit:
funktion ( puffer );

Funktion:
void funktion ( unsigned char *p_puffer )
{
 *p_puffer = .....
 p_puffer++;
 usw..
}

Wenn ich das Array und den zeiger als unsigned int definiere, so
funktioniert es, verbraucht mir aber zu viel Speicher, den ich nicht
habe! :-(

Definiere ich nur den zeiger als int, so schimpft der Compiler, dass
die Typen nicht zusammenpassen.. :-/

Versteht ihr, was ich meine oder muß ich es noch genauer versuchen zu
erläutern? ;)

Bin für jeden Tipp dankbar!

Gruß,
Peter
Gast #364301
Lesenswert?

Hattest recht! ;)

Grund war ein völlig anderer! Bin rein zufällig draufgekommen.

In einer anderen Funktion ist ein Zeiger übers Ziel
"hinausgeschossen" und hat wild im RAM herumgeschrieben! ;)

Trotzdem danke!

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