C: Что лучше? Массив указателей на структуры Malloc или массив структур?

Я уже некоторое время интересовался этим: при использовании структур внутри массивов, что касается распределения памяти, лучше ли выделить новую структуру для каждая запись в массиве, или лучше выделить достаточно места в массиве для N структур.

//pointer based:
struct myStructure ** tmp = malloc(sizeof(struct myStructure *) * N);
tmp[0] = malloc(sizeof(struct myStructure));
tmp[0]->whatever = true;

//or structure in the array:
struct myStructure * tmp = malloc(sizeof(struct myStructure) * N);
tmp[0].whatever = true

Есть ли преимущества перед одним или другим? Я считаю, что использование второй формы - лучшая практика, потому что в итоге вы получаете меньше мелких вызовов malloc, но могут быть случаи, когда вы можете использовать только первый метод.

Есть какие-нибудь сведения об этом?

Спасибо!

5
задан gngrwzrd 2 February 2012 в 22:55
поделиться