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
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.
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.
Wenn man tatsächlich die Adresse 0 will, paßt am ehesten sowas:
1 | int address = 0; |
2 | memset((void*)address, 0xaa, 0xffff); |
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.