Записки программиста Программирование и не только

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, если кому интересно.

Метки записи: Оставить комментарий
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Trackbacks are disabled.