11Ноя/090
Из динамического массива в статический.
Итак, есть задача:
Дана динамическая структура данных. Количество элементов заранее неизвестно. Необходимо передать данные в функцию, которая вообще понимает только статические массивы.
Решением будет динамическое объявление обычного массива.
Выглядеть это будет так:
float *ptr; int a = 5; ptr = (float*) malloc(sizeof(float) * (a + 1)); ptr[0] = 11;
Это для одномерного массива.
Для двумерного немного сложнее:
float **ptr; int a = 5; int b = 6; ptr = new float* [a+1]; for(int i = 0; i < a; i++) ptr[i] = new float[b+1]; ptr[0][0] = 11;
И самое главное - не забывайте прибирать за собой!
Для двумерного:
for(int i = 0; i < a; i++) { delete ptr[i]; } delete ptr;
А нужно мне это было для функции glDrawElement, если кому интересно.
Leave a comment