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

Тема в разделе "LANGS.C", создана пользователем NoName, 6 сен 2011.

  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Есть компилятор C89.
    Есть драйвер интел в котором есть структура. В этой структуре есть массив которому задается размер 1.
    В процессе работы появляется указатель на большой блок данных. Затем он трансформируется в тип указанной структуры. На месте массива возникает большой блок данных.

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

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    указатель же. Ничего нигде не возникает - просто указатель на массив в структуре начинает указывать в другое место. Код корректен, так и пишут (и не только драйвера), это тоже нормальный код, пользуйтесь чем удобнее :)

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

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Это про конструкцию вида any_shit array[] в конце структуры? Абсолютно законная конструкция, старинный костыль, используемый с седой древности для реализации динамических массивов.
     
  4. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Можно сказать что это стандартный способ, который очень часто применяется, Вы все равно ограниченны WDK, если это под Windows...