Ihre Aufgabe ist einfach. Schreiben Sie ein Programm, das beim Kompilieren oder Ausführen offensichtlich auf den ersten Blick einen Fehler erzeugt, aber entweder keinen oder einen anderen Fehler erzeugt. Dies ist ein Beliebtheitswettbewerb, also sei kreativ.
popularity-contest
underhanded
Jwosty
quelle
quelle
Antworten:
C ++
Stellen Sie sicher, dass Sie den folgenden Code im standardkonformen Modus kompilieren (verwenden Sie für g ++ beispielsweise das Flag -ansi):
Wie es funktioniert:
quelle
Rubin
Immer ein Fan von diesem.
Nein
NameError
. x ist jetztnil
.Hier ist eine profane, die mir schon mal untergekommen ist:
Druckt "hier gibt es nichts zu sehen."
quelle
C?
Ziemlich normaler Code hier ...
quelle
JavaScript
So funktioniert das:
quelle
JavaScript
Als ich den folgenden Code zur Verfügung stellte, wurde mir oft gesagt: "Es muss ein Tippfehler sein! Wie kann es funktionieren?" .
Die folgende Beschreibung wurde genau aus einem der letzten Fälle kopiert .
quelle
422
..
Notation gewöhnt sind, aber völlig ahnungslos in Bezug auf die.toString(a freaking argument here?)
Notation: P Na ja, ich habe es inzwischen herausgefunden :)..
ist der verwirrende Teil.Bash
Ergebnisse
Sie können erwarten, dass das Skript überhaupt keine Fehler erzeugt, da es nach dem ersten Befehl beendet wird. Das tut es nicht.
Sie können die typischen Fehlermeldungen erwarten, die durch eine fortlaufende Gabelbombe aufgrund der
for
Schleife verursacht werden. Es gibt keine Gabelbombe.Sie können davon ausgehen, dass sich Bash über den fehlenden
maybe
Befehl oder den gesamten Syntaxfehler imif
Block beschwert . Das wird es nicht.Die einzige Fehlermeldung, die das Skript möglicherweise ausgibt, endet mit
2: No such file or directory
.Erläuterung
quelle
Perl
Quelle und Erklärung: https://stackoverflow.com/questions/11695110
quelle
Java
Hier läuft kein Stapel über; weitergehen.
quelle
CoffeeScript
quelle
VBScript
Der
&
Operator in VBScript ist die Verkettung von Zeichenfolgen, aber was in aller Welt sind die Operatoren&&
und&&&
? (Denken Sie daran, dass der Operator "und" in VBScriptAnd
nicht ist&&
.)Dieses Programmfragment ist legal VBScript. Warum? Und was ist der Wert von
x
?quelle
Ziel c
Keine große Sache, aber es hat mich überrascht, als ich versuchte, einen Link in einen Kommentar einzufügen:
quelle
//
Kommentare unterstützt .C #
quelle
C
quelle
main
weilmain
sie in das Datensegment gestellt wurden, das nicht ausführbar ist. Amüsanterweise stürztconst int main=195
es nicht ab (auf x86) (sondern erzeugt einen Garbage-Exit-Status), da es.rodata
standardmäßig im selben Segment abgelegt ist wie.text
und daher ausführbar ist. (const char main[]="1\300\303";
wird erfolgreich beendet! (noch auf x86))Java
Wahrscheinlich zu offensichtlich.
Was?
quelle
varargs
sind nicht varargs;)\u000d
eine Referenz auf den undefinierten Wert verwendeta
.C ++
Warum?
quelle
NULL
als definiert werdennullptr
, und Implementierungen, die dies tun (noch keine, die ich kenne, aber ich erwarte sie), führen zu dem erwarteten Segmentierungsfehler.Python
quelle
print """""""""Python strings don't have to start with the same number of quotes they end with."""""
.JavaScript
Wie es funktioniert:
quelle
NaN
/Inf
genau wie diese auf sie). Moderne FP-Hardware kann für den Betrieb in beide Richtungen konfiguriert werden. Sprachunabhängig; schade nicht zu wissen.C ++
Das Mischen von Trigraphen und raumlosen Lambdas kann ziemlich verwirrend sein und auf jeden Fall für Leute, die sich der Trigraphen nicht bewusst sind, falsch aussehen:
Wie es funktioniert:
quelle
int main(){(([](){})());}
könnte auch gut aussehen, wenn es mit einem Dreifachdruck versehen wird ...[](){}
ist eine Lambda-Funktion, genau wie[](int a){return a+1;}
eine.([](){})()
ruft diese Funktion auf und kehrt zurück,void
wenn ich mich nicht irre. Das Ganze läuft(([](){})());
dann darauf hinaus(void);
, was eine Aussage ist, die nichts bewirkt.main
dann wird einfach null zurückgegeben, wie es ohnereturn
Anweisung sein sollte.VBA / VB6
Das Aufteilen einer leeren, durch Kommas getrennten Zeichenfolge sollte ein leeres Array ergeben. Sollte eine offensichtliche Division durch Null Fehler sein, oder?
quelle
Javascript
Gibt: 5
Wohingegen:
Gibt SyntaxError zurück
Wie es funktioniert:
quelle
HTML
Erster Beitrag hier, ich bin nicht sicher, ob ich das bekomme oder nicht, aber hier geht es.
quelle
.html
Erweiterung hat und Ihr Webserver nicht so konfiguriert ist, dass er.html
Dateien als PHP analysiert .PHP (40 Bytes)
Dies war die Antwort, die ich in dieser Frage gab: Insanity Check Program
Die Idee war, einen Code zu erstellen, der Fehler erzeugt.
Der erste Fehler, an den wir denken werden, ist ein Syntaxfehler.
Es gibt keine Syntaxfehler ...
Eine andere wäre, dass die Klasse / Funktion nicht existiert.
Es läuft nicht so weit ...
Andere wären ein Timeout oder ein Speicherüberlauf, aber auch hier reicht es nicht so weit ...
Testen Sie den Code hier: http://writecodeonline.com/php/ (entfernen Sie das
<?
am Anfang zu testende).quelle
foreach(e()as&$e);
ist der Kern dieser Lösung.e()
ist nur, um den Syntax-Checker am Laufen zu halten und&$e
danach,as
was den Fehler verursacht.VBScript
Visual Basic 6-Benutzer werden das wissen
ist legal, wie es ist
Aber was ist mit
? Es stellt sich heraus, dass dies in VBScript zulässig ist, in VB6 jedoch nicht. Warum?
quelle
C
Dies erinnerte mich an einen Fehler, auf den ich gestoßen war, als ich C lernte. Leider scheint die ursprüngliche Variante nicht mit einem aktuellen GCC zu funktionieren, aber dies tut es immer noch:
Dies schlägt offensichtlich fehl, weil wir einen Nullzeiger dereferenzieren, richtig?
Dies war die ursprüngliche Variante I, die ich nicht mehr reproduzieren kann:
Dies ist auch offensichtlich, wenn Sie wissen, wie Zeiger in C funktionieren, aber es kann überraschend sein, wenn Sie nicht:
quelle
Java
Warum funktioniert das?
quelle
C ++ 11
Kompiliert und läuft ohne Warnung mit
g++ -pedantic-errors -std=c++11
.quelle
VBScript
Was es macht:
quelle
C #
Eigentlich habe ich mich dabei ertappt, wie ich das versehentlich getan habe :)
quelle
Java
Und so funktioniert das:
Und noch einer:
quelle
enum{
anstattclass{
ein Byte zu speichern, dannC
Strings und Arrays in c können ziemlich verwirrend sein
quelle