Вопросы по теме 'variable-length-array'

Требуется ли выделение массива переменной длины C из стека?
После удаления всех вызовов malloc и calloc из нашего кода для встраиваемой системы я с удивлением обнаружил, что malloc все еще связывается. График вызовов указал мне на функцию, которая не имела явных вызовов * alloc и не вызывала любые...
1713 просмотров
schedule 21.09.2021

Соответствуют ли параметры массива VLA?
Стандарт безопасного кодирования CERT включает item ( API05-C ), который поощряет использование соответствующих параметров массива, что является рекомендацией, которую я реализовал во многих частях моего кода (скрытых за макрос для компиляторов,...
249 просмотров

Выражение размера параметра массива переменной длины с побочными эффектами
Этот вопрос возник из-за замечания Эрика Постпишила, сделанного в другом потоке. Мне сложно понять использование массивов переменной длины (VLA) в качестве параметров функции: Размер массива не проверяется. Размер массива не может быть...
140 просмотров

Поиск массивов переменной длины в коде
Когда размер моих входных данных достаточно велик, ошибка сегментации возникает там, где в проекте используются массивы переменной длины. Я хочу удалить их все, как заставить GCC отображать каждое найденное объявление массива переменной длины? Я...
187 просмотров
schedule 24.03.2022

Как генерируются инструкции массива переменной длины?
Массивы переменной длины поддерживаются в C: int main(){ int num = 5; int arr[num]; return 0; } Я понимаю, что arr выделяется во время выполнения. Как это достигается? Вызывает ли он функцию времени выполнения C для выделения...
60 просмотров
schedule 20.04.2022

Правильное размещение многомерных массивов
Целью этого вопроса является предоставление справки о том, как правильно распределять многомерные массивы динамически на C. Это тема, которую часто неправильно понимают и плохо объясняют даже в некоторых книгах по программированию на C. Поэтому даже...
8834 просмотров

Оператор Sizeof с типом массива переменной длины
Согласно cppreference : Если тип выражения является типом массива переменной длины , вычисляется выражение и размер массива он вычисляется во время выполнения. Это означает: если тип выражения является типом VLA, то оценивается...
1455 просмотров
schedule 08.08.2022

Как я могу инициализировать массив, не зная его размера?
У меня есть ситуация, когда я должен применить критерии к входному массиву и вернуть другой массив в качестве вывода, который будет иметь меньший размер на основе критериев фильтрации. Теперь проблема в том, что я не знаю размер отфильтрованных...
112231 просмотров

длина массива во время выполнения в C++
Меня попросили доказать, что длину массива можно задать в программе, и ее не нужно определять во время компиляции. У меня есть следующий код: #include<iostream> using namespace std; int main() { int x, myarray[x]; cout <<...
126 просмотров
schedule 27.08.2022

C++ Передача динамического массива, определяемого параметром
Эта функция задавалась здесь несколько раз, но меня интересует конкретный случай. Возможно ли, чтобы размер передаваемого массива определялся дополнительным аргументом? В качестве примера предположим, что мне нужна функция для печати двумерного...
82 просмотров
schedule 21.09.2022

порядок кода с массивом переменной длины
В C99 есть большая разница между этими двумя?: int main() { int n , m; scanf("%d %d", &n, &m); int X[n][m]; X[n-1][m-1] = 5; printf("%d", X[n-1][m-1]); } и: int main(int argc, char *argv[]) { int n , m;...
90 просмотров
schedule 24.09.2022

Почему массивы переменной длины не являются частью стандарта C ++?
Я не очень много использовал Си в последние несколько лет. Когда я читаю это question сегодня я наткнулся на синтаксис языка C, с которым я не был знаком. По-видимому, в C99 допустим следующий синтаксис: void foo(int n) { int...
167802 просмотров

Поддерживает ли C++ массивы переменной длины?
Нет, подожди, потерпи меня... VLA всегда были расширением GCC, но они были приняты C99: [C99: 6.7.5.2/4]: Если размер отсутствует, тип массива является неполным. Если размер * вместо выражения, тип массива является типом массива...
18376 просмотров
schedule 22.07.2023

Как преобразовать код массива переменной длины C в Rust?
Я знаю, что Rust не поддерживает массивы переменной длины, но это заставляет меня задуматься, чем их заменить, учитывая, что: Я не хочу выделять и освобождать крошечный Vec в цикле Средство проверки заимствований не позволяет мне вывести код за...
688 просмотров

sizeof оценка массива переменной длины
sizeof операнд будет оценивать операнд, если это массив переменной длины. 6.5.3.4, p2: если тип операнда представляет собой тип массива переменной длины, операнд оценивается; Тем не менее, этот код работает, и я предполагаю, что он...
159 просмотров

Инициализированный массив переменной длины, работающий по-разному (между компьютерами)
У меня есть код, который инициализирует массивы, в частности C-строки, с использованием переменных. Например... int len = getLength(); char cstr[len+1] = {'\0'}; Это компилируется и безупречно работает в моем коде. Однако, когда один из...
128 просмотров
schedule 08.07.2023

MATLAB: прокрутите значения списка из функции «кто»
У меня есть длинный список переменных в моей рабочей области. Во-первых, я нахожу потенциальные переменные, которые могут меня заинтересовать, используя функцию who . Затем я хотел бы просмотреть этот список, чтобы найти размер каждой переменной,...
589 просмотров
schedule 06.01.2023

Странное назначение типа для индекса массива в C++
Привет у меня есть пример программы #include <iostream> int main() { int a = -5; int arr[a]; std::cout << "Size of arr: " << sizeof(arr) << std::endl; return 0; } Здесь я получаю вывод 17179869164....
105 просмотров
schedule 10.07.2023

Ошибка компиляции массива переменной длины с GCC
Как сделать компиляцию успешной для программы с массивом переменной длины? (в настоящее время отображается ошибка: массив переменного размера). Я использую gcc в линуксе. Как сделать компилятор совместимым со стандартом c99? Пожалуйста, помогите...
132 просмотров
schedule 02.01.2023

ISO C90 запрещает использование массивов переменной длины [-Werror = vla]
Итак, я создал структуру под названием product, и я хотел отсортировать массив с этим типом структуры на основе компонента этой структуры под названием price, и для этого я скопировал объединенный алгоритм сортировки. Я немного изменил его, чтобы...
690 просмотров
schedule 02.02.2024