Массив произвольного размера

Discussion in 'LANGS.C' started by NoName, Sep 6, 2011.

  1. NoName

    NoName New Member

    Blog Posts:
    0
    Joined:
    Aug 1, 2004
    Messages:
    1,229
    Есть компилятор C89.
    Есть драйвер интел в котором есть структура. В этой структуре есть массив которому задается размер 1.
    В процессе работы появляется указатель на большой блок данных. Затем он трансформируется в тип указанной структуры. На месте массива возникает большой блок данных.

    Вопросы. Как вы считаете
    1. насколько такой код корректен?
    2. все ли пишут так драйвера?
    3. как писать нормальный код?
    4. стоит перестать использовать C89?
     
  2. FatMoon

    FatMoon New Member

    Blog Posts:
    0
    Joined:
    Nov 28, 2002
    Messages:
    954
    Location:
    Russia
    указатель же. Ничего нигде не возникает - просто указатель на массив в структуре начинает указывать в другое место. Код корректен, так и пишут (и не только драйвера), это тоже нормальный код, пользуйтесь чем удобнее :)

    PS: доперло, и так тоже нормально.
     
  3. CyberManiac

    CyberManiac New Member

    Blog Posts:
    0
    Joined:
    Sep 2, 2003
    Messages:
    2,473
    Location:
    Russia
    Это про конструкцию вида any_shit array[] в конце структуры? Абсолютно законная конструкция, старинный костыль, используемый с седой древности для реализации динамических массивов.
     
  4. h0t

    h0t Member

    Blog Posts:
    0
    Joined:
    Apr 3, 2011
    Messages:
    735
    Можно сказать что это стандартный способ, который очень часто применяется, Вы все равно ограниченны WDK, если это под Windows...