Я работаю в проекте C ++ 17, но должен использовать библиотеку C-legacy. Для этого мне нужно создать массив const char * в стиле C, но я борюсь с инициализацией. В частности,
#include <iostream>
int main(int argc, char* argv[])
{
const int bound = 3;
const char* inames[bound]{ "" };
for(unsigned int i = 0; i < bound; i++) {
const char *number = std::to_string(i).c_str();
inames[i] = number;
}
for(unsigned int i = 0; i < bound; i++) {
std::cout << "inames["
<< std::to_string(i)
<< "] = "
<< inames[i]
<< std::endl;
}
return 0;
}
возвращает
inames[0] = 2
inames[1] = 2
inames[2] = 2
как вывод, который я не понимаю. Я ожидал, что результат будет
inames[0] = 0
inames[1] = 1
inames[2] = 2
Может кто-нибудь помочь мне указать мне на мою ошибку?