У меня есть простая структура, содержащая массив целых чисел и индекс, который будет использоваться для этого массива.
#define BUFF_SIZE 100
typedef struct _buffer Buffer;
struct _buffer {
int buff[BUFF_SIZE];
int index;
};
Я пытаюсь написать функцию для создания указателя на экземпляр этой структуры и инициализации его значений до нуля. Однако, когда я пытаюсь инициализировать массив с помощью оператора стрелки, я получаю сообщение об ошибке, что выражение неверно.
...
Buffer* newBuff;
newBuff->buff = {0}; //Error occurs here
...
Я знаю, что в c массив является указателем на базу блока памяти, в котором находится массив, но у меня сложилось впечатление, что разыменование указателя структуры позволит мне получить доступ к массиву. Я ошибаюсь в этом, или я что-то упускаю здесь? У меня такое ощущение, что это что-то очень простое, но хоть убей, я просто не могу этого заметить.
Спасибо!
РЕДАКТИРОВАТЬ: Спасибо за быстрые ответы, ребята, они помогли мне понять кое-что из того, что происходит. Я забыл упомянуть, что это предназначено для запуска во встроенной системе (извините за это), поэтому я хотел бы избежать использования include или malloc, если это вообще возможно.