Как правило, запрос должен быть отправлен с одним из трех типов контента: raw, json и text.
Попробуйте отправить запрос с: content-type: "application / json; charset = utf-8"
Нет это не возможно. Объявления массива в заголовках должны иметь постоянное размерное значение. Иначе для конструкций как "sizeof" невозможно функционировать правильно. Необходимо будет объявить массив как тип указателя и использовать новый [] в конструкторе. Пример.
class Test {
int *a;
public:
Test(int size) {
a = new int[size];
}
~Test() { delete [] a; }
private:
Test(const Test& other);
Test& operator=(const Test& other);
};
Как другие ответы указали, размер массива фиксируется во время компиляции. Однако при помощи шаблонов можно параметризовать размер во время компиляции:
template <int N> class Test {
int a[N];
public:
Test() { }
};
Test<5> test;
Test<40> biggertest;
Эта техника не позволяет Вам вычислить размер во время выполнения (как динамическое std::vector
решение делает), но в зависимости от Ваших потребностей это может быть достаточно.
Короткий Ответ: Нет (Размер массива определяется во время компиляции только),
Длинный ответ:
Можно использовать вектор для достижения того же результата:
class Test
{
std::vector<int> a;
public:
Test(std::size_t size):
a(size)
{}
};
В первую очередь, обычно лучше инициализировать вещи в списке инициализации конструктора, не в теле конструктора.
Можно только инициализировать массив с предопределенным, связанным, если Вы знаете, что это связало во время компиляции. В этой ситуации необходимо будет динамично выделить место.
Необходимо не забыть затем иметь деструктор, который удалил бы массив, когда объект уничтожается, или Вы получили бы утечку памяти.
Посмотрите решение Martin (использование std::vector
), и помните это, даже если необходимо передать буфер API C std::vector
позволяет Вам сделать это путем передачи &vec[0]
:
std::vector<char> vec(10);
memset(&vec[0], 0, vec.size());
Это, как гарантируют, будет работать, но только если вектор не пуст (причуды C++, <вздох>).
Нет, это не возможно. Необходимо использовать динамический массив такой в качестве std::vector
. C99 позволяет структуре иметь неразмерный массив как последнего участника только, но даже когда Вы делаете это, все еще необходимо вручную выделить память сами, например, с malloc()
.
То, о чем Вы говорите, не возможно. Классы всегда имеют постоянный размер. У Вас могло быть свое использование класса указатель на динамично выделенный массив, или Вы могли использовать станд.:: вектор.