Извините, если название темы не очень ясное, я не смог найти способ выразить это. Так скажем, у меня есть эта структура:Добавление int как char в char []
struct filee
{
...
int number;
char filename[7];
};
typedef struct filee filee;
, и я хочу, чтобы инициализировать его с помощью функции
void file_init(filee* x,int n)
{
x->number=n;
x->filename=(char)n+"ch.bmp"
}
но это действительно не работает, так что я хочу, если, например, я делаю это :
file_init(&randomFile,2);
Он работает следующим образом:
randomFile.number=2;
randomFile.filename="2ch.bmp";
Я надеюсь, что то, что я сказал, ясное и спасибо за помощь!
примечание: 'символ имени файла [7];' мал. – BLUEPIXY
относительно этой строки: 'x-> filename = (char) n + "ch.bmp" в C, символьные строки не могут быть объединены с помощью оператора' + '. см. ответ @iharob для примера того, как это сделать. – user3629249
char string 'ch.bmp' имеет 7 символов (помните конечную «\ 0» в строке), тогда префикс с одной (или более) цифрами переполнит границы массива имен файлов. Это приводит к неопределенному поведению, которое может/приведет к событию сбоя seg. – user3629249