Измените это:
char numbers[6] = "123456";
На это:
const char numbers[] = "123456";
Размер массива определяется автоматически компилятором, поэтому вам не нужно указывать его явно.Вы все равно пытаетесь установить его слишком маленьким, потому что он на самом деле имеет ширину 7 байт из-за завершающего нулевого терминатора .
Для него не обязательно быть const
, ноесли вы все-таки пометите его как таковой, это станет более понятным.
Кроме того, это не сработает:
*filestring = numbers[i] + ".jpg";
Вы не можете объединять строки C таким образом.Проще всего было бы сделать это:
string filestring = string(1, numbers[i]) + ".jpg";
Когда вам нужно использовать ее как строку C, вы можете сделать это:
SOIL_load_OGL_texture(filestring.c_str(), ...