Ich habe eine Dateistruktur, wo feste Länge Strings keinen Nullhinter hat initialisieren. Wie Felder wie std :: Array initialisieren, ohne Nullhinter:Wie ein std :: Array <char, N> mit einem Stringliteral Weglassen der hinteren ‚ 0‘
#pragma pack(push, 1)
struct Data {
// Compiles, but it has an undesired '\0':
std::array<char, 6> undesired_number{"12345"};
// Does not compile:
std::array<char, 5> number{"12345"}; // stripping '\0'
};
#pragma pack(pop)
Was ist der Compiler-Fehler? Inkompatible Typen? Ich fürchte, es ist einfach nicht möglich, basierend auf einem Zeichenkettenliteral. –
Warum müssen Sie ein String-Literal verwenden, um es zu initialisieren? – Barmar
@Barmar nur für die Bequemlichkeit –