このコードでこのエラーが発生する理由がわかりません。私は何をすべきか?エラーは次のとおりです。
柔軟な配列メンバーの無効な使用
この行で:
new_buffer->array_msg =array;
ここにコードのより大きなセクションがある場合:
typedef struct buffer {
int size;
int T;
int D;
int msg_presenti;
pthread_cond_t not_full;
pthread_cond_t not_empty;
pthread_mutex_t mutex;
msg_t * array_msg[];
} buffer_t;
buffer_t * buffer_init(unsigned int maxsize){
buffer_t * new_buffer = malloc( sizeof(buffer_t) + maxsize * sizeof(msg_t) );
msg_t * array[maxsize];
new_buffer->array_msg =array;
new_buffer->size=maxsize;
return new_buffer;
}
// deallocazione di un buffer