Forum: Compiler & IDEs const Pointer


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich würde gerne einer Funktion einen const Pointer übergeben.
Ziel ist, dass der Pointer selbst veränderbar ist, jedoch die 
Zieladresse nicht.
Also:
1
void foo(const char* data, uint8_t length)
2
{
3
   char bla;
4
5
   bla = *data++; /* soll gehen */
6
   *data++ = bla + 1; /* soll NICHT gehen! */
7
8
   return;
9
}

Wie mach ich das?

Danke und Grüße
Markus

von Peter II (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Markus schrieb:
> Wie mach ich das?

hast du doch schon gemacht

test.cpp:10:27: error: assignment of read-only location '*(data ++)'
           *data++ = bla + 1; /* soll NICHT gehen! */

von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ach verdammt!
Da war ein anderer Syntax Error!
Dann war ich doch nicht blöd. ;)

von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:
> Dann war ich doch nicht blöd. ;)

Jajajaja, bevor es irgendwelche Kommatare gibt:
Zumindest, was den Fehler des const Pointers angeht! :-P

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.