Articles of инициализация

Инициализировать массив char в C

Я не уверен, что будет в массиве char после инициализации следующим образом: char buf[5]={0,}; Это эквивалентно char buf[5]={0,0,0,0,0};

Инициализация массива структур

Вот инициализация, которую я только что нашел в чьем-то вопросе. my_data data[]={ { .name = “Peter” }, { .name = “James” }, { .name = “John” }, { .name = “Mike” } }; Я никогда не видел ничего подобного раньше и не могу найти объяснения, как можно правильно назвать имя. Я ищу, как шаг за […]

Предупреждение преобразования из строки const в char * при инициализации массива строк C

Я использовал следующее, чтобы объявить и инициализировать массив строки в C: char *myTable[] = { “ABC”, “Y”, “*”, “*”, “WXYZ”, “Y”, “*”, “*”, “MNO”, “Y”, “*”, “*”, NULL, NULL,NULL, NULL }; NULL предназначены для внутреннего использования. Поскольку я перешел на gcc 4.4.6, я получаю предупреждение: abc.cpp:74: warning: deprecated conversion from string constant to ‘char*’ Каков […]

Инициализация только одного члена в структуре C для массива элементов структуры

У меня есть следующий код с намерением инициализировать элемент b. Это должно произойти для всех структур MAX_SIZE. enum { MAX_SIZE = 10 }; struct some { int a, b; } many[MAX_SIZE] = { {.b = 5} }; int main() { int i; for (i = 0; i < MAX_SIZE; i++) { printf("%d, %d\n", many[i].a, many[i].b); […]

C – статический массив с длиной, определенной переменной

Я на самом деле работаю над назначением на C, и для потребности в моей реализации мне нужно использовать статический массив, скажем, static int array[LEN]; Фокус в том, что эта длина массива LEN вычисляется в main() . Например static int LEN; void initLen(int len) { LEN = len; } static int array[LEN]; Если initLen вызывается в […]

ISO C запрещает пустые фиксаторы инициализатора в C

У меня есть такая структура: typedef struct { int a; int b; int c; int d; } Hello; то я заявляю это следующим образом: Hello hello[6] = {}; Затем я получил это предупреждение: ISO C запрещает пустые фиксаторы инициализатора, так или иначе, мне кажется, мне нужно его инициализировать, как это сделать правильно?

Каково поведение, когда есть больше инициализаторов, чем размер массива?

Я хотел бы знать, что происходит, когда есть больше инициализаторов, чем размер массива, например: int t[3] = { 1, 2, 3, 4 }; Конечно, мой компилятор предупреждает об этом. Я ожидал неопределенного поведения, но я не нашел в нем никаких положений в стандарте C11. Итак, я что-то пропустил?

что именно представляет опасность неинициализированного указателя в C

Я пытаюсь получить ручку на C, поскольку я прокладываю себе путь через « Циклон: безопасный диалект С » Джима Тревора для classа PL. Тревор и его соавторы пытаются сделать безопасную версию C, поэтому они устраняют неинициализированные указатели на своем языке. Попутно перемещаясь по неинициализированным указателям, кажется, что неинициализированные указатели указывают на случайные местоположения в памяти. […]

массивы переменной длины в C и инициализация их на месте

C99 позволяет определять массивы с непостоянным размером, т. Е. Размер, используемый для определения массива, может меняться во время выполнения. Фрагмент кода, чтобы объяснить это, void dummy_function1(unsigned int length) { char arrA[length]; //Allowed . . } Однако он не позволяет инициализировать его на месте, т.е. void dummy_function2(unsigned int length) { char arrA[length]={0}; //Not Allowed, compiler throws […]

Существует ли использование неинициализированных указателей в C или C ++?

В одном из комментариев в этом вопросе было показано, что инициализация указателей C ++ по умолчанию будет нарушать совместимость с C. Все в порядке, но зачем было что-то подобное? Я бы подумал, что единственный раз, когда это действительно имеет значение, я хочу, чтобы по какой-то причине мне захотелось неинициализированного указателя. Но я не могу придумать, […]

Intereting Posts
Назначение плавающих указателей в C Является ли законным принимать адрес параметра функции? C trie пытается добавить апостроф Переход от линейного зондирования к квадратичному зондированию (хеширование) Нужно знать, как работает вилка? Память сопоставления opencl не работает Как я могу эффективно кодировать / декодировать сжатое описание позиции? Обработка ошибок при открытии файла Вывод программы, которая подсчитывает пробелы, вкладки и новые строки Ошибка: нет предыдущего прототипа для функции. Почему я получаю эту ошибку? Расчет диапазонов типов данных в C Значение по умолчанию для не инициализированных переменных Как вы загружаете / сохраняете из / в массив удвоений с помощью векторных расширений GNU C? Как я могу предотвратить, чтобы дочерний процесс НЕ стал зомби, если родительский выход Бесплатные столбцы 2D-матрицы