[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: а кто C хорошо знает?



On 2012.10.08 at 12:41:05 +0400, Dmitry E. Oboukhov wrote:

> имеется некая структурка
> 
> struct something {
>     ...
> 
>     unsigned count;
>     unsigned element[0];
> };
> 
> то есть в поле count сказано сколько элементов будет после структурки.
> ну и обращение к ним идет так:
> 
> for (i = 0; i < s->count; i++) {
>     s->elements[i] = i;
> }
> 
> 
> теперь когда мы это хотим саллоцировать, то пишем такой аллокатор
> 
> struct something * some_alloc(unsigned size) {
>     return malloc(sizeof(struct something) + sizeof(unsigned) * size);
> }
> 
> 
> а вот если появилась необходимость саллоцировать такой объект
> статически, как быть?

Завести  union. С первым вариантом struct something и вторым - массивом
требуемой длины. (учитывая sizeof(struct something).


Reply to: