Доброе время суток!
Столкнулся с небольшой проблемой при использовании операторой new() и delete() в C++.
Для начала, пример кода на C:
struct struct_t {
....
char data[];
};
struct struct_t *function()
{
struct struct_t *s;
....
/* Вычислили размер data. */
s = malloc(sizeof(struct struct_t) + datasize);
return s;
}
....
/* Освобождаем память. */
free(s);
Внимание вопрос: как то же самое написать на C++? У меня возникла сложность с тем, что единственный известный мне подходящий способ выделения памяти выглядит так:
s = (struct_t) new char [sizeof(struct_t) + datasize);
Т.е. я выделяю память под массив байт. Но в этом случае ее и освобождать нужно как
delete [] s
а хотелось бы просто delete s....
Может кто чего подскажет? :)