mikrocontroller.net

Forum: Compiler & IDEs Type null argument where non-null required


Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

eine Frage:
Warum ergibt memset(NULL,0xaa,0xffff); eine Warnung:

Type null argument where non-null required

kann man zwar mit #pragma GCC diagnostic ignored "-Wnonnull"; abschalten
doch was gefällt memset daran nicht?

MfG

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist wie mit den Dosenöffnern. Wenn Du sie dazu benutzen willst, 
Stoff zu nähen geht was schief.
Lies mal die Doku von memset, dann wird einiges klarer.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus Sicht der Sprache C kann ein NULL-Pointer nie auf etwas Gültiges 
zeigen.  Dass Du dort etwas hast (ich nehme mal an, Du willst die 64 k 
ab Adresse 0 setzen), nützt nichts.

Die Implementation könnte zwar etwas anderes als die Zahl 0 für den 
Pointer auf ein ungültiges Objekt wählen, das lässt C schon offen.  Es 
würde Dir aber nichts nützen, da C fordert, dass ein Verweis (im 
Pointer-Kontext) auf die Zahl 0 im Quelltext immer als 
Nullpointer-Referenz gewertet wird.

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man tatsächlich die Adresse 0 will, paßt am ehesten sowas:
int address = 0;
memset((void*)address, 0xaa, 0xffff);

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

@ Rolf Magnus
Ja stimmt. Ich kannte die Warnung bislang nicht. Ich habe hier ein gcc 
Projekt auf dem Tisch, dass nach Einschalten von -Wall mehr Warnungen 
erzeugt wie es Zeilen Quelltext hat.

MfG

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.