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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.