Другие языки программирования и технологии

Вопрос программистам: есть ли разница в производительности при использовании массивов/кучи обычных переменных?

Применительно к Борланд-Си (-шному) компилеру, - работать будет совершенно одинаково и в обоих случаях быстрее, чем при объявлении :
int* test_array;
test_array = new int[10];
в "противовес" предложенному Вами статическому выделению памяти, которое (к стати!) "обращением к куче "(heap) совершенно не является :) ! Не помню точно, но статич. выделение памяти в Си имеет ограничение, не зависимо от размера не занятой части оперативки, в то время, как динамически можно "распластаться" на всей свободной. Но всё это актуально для задач обработки инфы, которые решаются сутками (например, моделирование процессов ядерного синтеза внутри Солнца). В "бытовых" приложениях Вы субъективно не заметите разницы при любом подходе.
Удачи.
Жандос Жакаев
Жандос Жакаев
3 676
Лучший ответ
10 целых переменных занимают 40 байт. Массив из десяти целых переменных - столько же. Нормальная память у компьютера - 4 гигабайта, то есть на миллиард таких переменных (правда, под программу у нас есть обычно около половины этой памяти). Смешно экономить несколько бвйтов из имеющихся сотен миллионов.
Сергей Дунаев
Сергей Дунаев
79 792
Одинаково
Массив это такая же кучка, только он является указателем на var0

struct noob_test
{
int i0;
int i1;
int i2;
int i3;
};

noob_test nt;
int *arr = &nt.i0;
arr[1] = 5;
print(nt.i1);// 5

Работать не будет, там юзается выравнивание. Если его отключить то должно
-------------------------------------

Лучше юзать массив
Леонид Лупенко Зависит от выравнивания, если выравнивать будет по 32 битам, и размер типа int тоже 32, то они окажутся друг за другом. Другое дело, полагаться на это нельзя, с разными настройками компиляции и на разных системах результат может отличаться.
Скорее всего отдельные переменные будут работать немного быстрее, т. к. не нужно вычислять их адрес, в отличие от массива, хотя зависит от того насколько оптимальный код создаст компилятор.
Но в целом это считанные микросекунды, если не меньше.
ничего, что ты даже язык не указал? такие вещи запросто отличаются в разных ЯП.
и вообще зачем спрашивать? бери сам да тестируй. в чем проблема? если в том чтобы наплодить реально много переменных - так слепи прожку, которая сделает это за тебя. простейший кодогенератор