Ich möchte im Grunde das C von Äquivalent (gut, nur der Teil mit dem Array, ich brauche nicht die Klasse und String-Parsing und all das):
%Vor%Entschuldige meine Unwissenheit. Ich wurde von Java verdorben;)
In C können Sie das tun, wenn Sie die Fehlerprüfung ignorieren:
%Vor%Wenn Sie keine globale Variable möchten und Sie C99 verwenden, könnten Sie Folgendes tun:
%Vor%Dies verwendet ein VLA - Array variabler Länge.
Leider sind viele der Antworten auf diese Frage, einschließlich der akzeptierten, korrekt , aber nicht äquivalent zu dem Code-Snippet des OP . Denken Sie daran, dass operator new[]
den Standardkonstruktor für jedes Array-Element aufruft. Für POD-Typen wie int
, die keinen Konstruktor haben, werden sie standardmäßig initialisiert (lies: null-initialisiert, siehe §8.5 ¶5-7 von Der C ++ Standard ).
Ich habe gerade malloc
(nicht initialisierten Speicher zuweisen) für calloc
(Nullspeicher löschen) getauscht, so dass das Äquivalent zu dem angegebenen C ++ - Snippet
Tut mir leid, dass ich diese alte Frage wiederbelebt habe, aber es fühlte sich einfach nicht an, ohne einen Kommentar zu gehen (für den ich nicht die erforderliche Repräsentierung habe) ;-)