tablice char c++

0

const char * s[2] = { "kot", "pies"}; Czemu literały będące elementami tablicy muszą być stałe? (a nie może być char * s[2] = {"kot, "pies"})

2

Bo tak definiuje to standard. Chcesz móc je zmieniać - użyj tablicy tablic, nie wskaźników.

0

Bo C++ ma prawo zoptymalizować wszystkie koty w projekcie do jednego kota. Ale to działa tylko jeśli kot jest niezmienny.

2

Dlatego, że używasz C a nie C++.

std::array<std::string, 2> s{ "kot", "pies" };

I problem rozwiązany jak należy.
albo dla C++17:

using namespace std::literals;

std::array s{ "kot"s, "pies"s };

Wersja C:

char s[2][10] = { "kot", "pies"};

1 użytkowników online, w tym zalogowanych: 0, gości: 1