Предполагая, что у вас есть фиксированное количество значений, правильный ответ Ed * S .
Иначе, вы не можете сделать то же самое, потому что вы можете только инициализировать переменнуючлен в списке инициализатора, и такое назначение не может быть сделано в списке инициализатора.
Однако версия C # возможна благодаря использованию new
, поэтому, возможно, это хорошее решение сделать то же самое в C ++однако вам нужно будет иметь длину offsets
и присваивать каждому значению индивидуально:
typedef struct _MyStructCpp
{
_MyStructCpp(int size)
{
_size = size; // Say 4
offsets = new unsigned char[size];
offsets[0] = 28;
// etc....
}
private:
int _size;
unsigned char* offsets;
}MyStructCpp;
Однако вы должны иметь в виду, что вы только что выделили динамическую память, поэтому вам следует очистить еев деструкторе.