Als «undefined-behavior» getaggte Fragen

Das unvorhersehbare Ergebnis des Kompilierens oder Ausführens eines Programms, das gegen Regeln der Sprache verstößt, müssen weder Compiler, Interpreter noch Laufzeitsystem erzwingen. Verwenden Sie dieses Tag NICHT für Fragen zum Datentyp oder zum Rückgabewert von "undefined". In diesen Fällen sollte stattdessen das Tag [undefined] verwendet werden.



4
C ++ Kompilierungsfehler?
Ich habe folgenden Code: #include <iostream> #include <complex> using namespace std; int main() { complex<int> delta; complex<int> mc[4] = {0}; for(int di = 0; di < 4; di++, delta = mc[di]) { cout << di << endl; } return 0; } Ich erwarte, dass es "0, 1, 2, 3" ausgibt …

5
Ist die Maskierung vor der vorzeichenlosen Linksverschiebung in C / C ++ zu paranoid?
Diese Frage wird von mir motiviert, kryptografische Algorithmen (z. B. SHA-1) in C / C ++ zu implementieren, tragbaren plattformunabhängigen Code zu schreiben und undefiniertes Verhalten gründlich zu vermeiden . Angenommen, ein standardisierter Krypto-Algorithmus fordert Sie auf, Folgendes zu implementieren: b = (a << 31) & 0xFFFFFFFF wo aund bsind …



7
Wie funktioniert der Zeigervergleich in C? Ist es in Ordnung, Zeiger zu vergleichen, die nicht auf dasselbe Array verweisen?
In Kapitel 5 von K & R (The C Programming Language 2nd Edition) habe ich Folgendes gelesen: Erstens können Zeiger unter bestimmten Umständen verglichen werden. Wenn pund qPunkt an den Mitgliedern des gleichen Array, dann Beziehungen wie ==, !=, <, >=etc. richtig funktionieren. Dies scheint zu implizieren, dass nur Zeiger …








1
Ist `string.assign (string.data (), 5)` gut definiert oder UB?
Ein Mitarbeiter wollte dies schreiben: std::string_view strip_whitespace(std::string_view sv); std::string line = "hello "; line = strip_whitespace(line); Ich sagte, dass die Rückkehr string_viewmich a priori unruhig machte , und außerdem sah das Aliasing hier für mich wie UB aus. Ich kann mit Sicherheit sagen, dass line = strip_whitespace(line)in diesem Fall gleichbedeutend …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.