固定長文字列の末尾にゼロがないファイル構造があります。 STDとしてのフィールドを初期化する方法::ゼロを付けずに配列 :std :: arrayを初期化する方法末尾の ' 0'を省略した文字列リテラルで<char, N>を初期化する
#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)
コンパイルエラーとは何ですか?互換性のない型?私は文字列リテラルに基づいて単純にはできないのではないかと心配しています。 –
文字列リテラルを使用して初期化する必要があるのはなぜですか? – Barmar
便宜のために@Barmar –