entfernt dieses Thema Zugriff halten, wie die Leute einfach bei UB stoppen ...was in Linux glibc passiert, wenn immer mehr Speicher von mehr als malloc() zugewiesene Größe
Antwort
außerhalb des zugewiesenen Speichers ist undefined behavior Zugriff auf Sachen. Alles kann passieren. Ich höre Nasen-Dämonen sind eine Möglichkeit.
Wenn Sie Glück haben, könnten Sie eine Zugriffsverletzung/segfault erhalten. Wenn Sie kein Glück haben, dann kann eine andere Variable im Programm überschrieben werden, oder nichts kann beobachtet werden. Der Mond kann sich in das 7UP-Logo verwandeln, oder vielleicht drückt sich etwas Fiesliches aus Ihrem rechten Nasenloch aus.
Nicht der Downvoter. Ich mag das [du machst das] (https://Stackoverflow.com/a/13444785/27678) – AndyG
Muss den Punkt irgendwie nach Hause fahren :) Plus ich beauftragte und besitze das Bild. – EvilTeach
Ich hasse es, Ihnen das zu sagen, aber indem ich es auf SO teile, besitzen Sie es nicht mehr [Legal] (https://stackexchange.com/legal) – AndyG
- 1. reserviert Malloc mehr Speicher als benötigt?
- 2. Verstehen glibc malloc trimmen
- 3. Was passiert, wenn mehr als eine .cpp-Datei # enthalten ist?
- 4. Dienst verwendet immer mehr Speicher
- 5. , was passiert, wenn ich verwenden mehr als eine dispatch_async
- 6. Installierte apk Größe mehr als die tatsächliche Größe von apk
- 7. Immer mehr als ein Wert
- 8. Warum ist die Speicherbelegung in Linux mehr als physischer RAM?
- 9. Was passiert, wenn versucht wird, Speicher freizugeben, der vom Heap-Manager zugewiesen wurde, der mehr zuweist als verlangt?
- 10. Cassandra hat keinen Speicher mehr (Heap-Speicher)
- 11. Valgrind zeigt mehr Speicher zugewiesen, als tatsächlich
- 12. Owin Startup passiert mehr als einmal
- 13. list() verwendet mehr Speicher als Listenverständnis
- 14. C++ Was passiert, wenn Sie mehr Zeichen mit sprintf drucken, als der Char-Zeiger zugewiesen hat?
- 15. Warum Android mehr Speicher als benötigt zuteilen, wenn Bilder
- 16. Kann ich nur glibc malloc als gemeinsame Bibliothek erstellen?
- 17. Heruntergeladene Größe ist mehr als real
- 18. Kein Speicher mehr?
- 19. Verwendet StringBuilder mehr Speicher als String-Verkettung?
- 20. Operator new mehr Speicher Rückkehr als gebeten,
- 21. Hintergrundbild hat keinen Speicher mehr
- 22. PE-Dateien können nicht mehr als bestimmte Größe analysiert werden
- 23. Kein Heap-Speicher mehr verfügbar
- 24. Wo malloc()/free() Zugewiesene Größen und Adressen speichern?
- 25. Warum malloc immer Null zurückgeben
- 26. Was passiert, wenn eine Anwendung mehr als 10 asynchrone URL-Aufrufe bei Google App Engine aufruft?
- 27. Mehr Speicher in Nvidia GPUs?
- 28. Speicher von Terminen mit mehr-als-4-stellige Jahren
- 29. CPU und Speicherverbrauch von jemalloc im Vergleich zu glibc malloc
- 30. PhoneGap mit viel mehr Speicher in iOS8 als iOS7
Nicht definiertes Verhalten ist nicht definiert. Die Sprache lässt dich generell so in den Fuß schießen. Ungeprüfte Zugriffe sind schneller. – AndyG
Die Antwort auf "Was passiert, wenn ich [Sache, die ich nicht tun darf]" in C oder C++ ist normalerweise, dass das Programm als Ergebnis buchstäblich alles tun darf. – user2357112
Ich denke nicht, dass dies wegen Unklarheit geschlossen werden sollte. Brett fragt speziell, welches Verhalten in diesem Fall auftritt. – EvilTeach