LINUX.ORG.RU

Проблема с пониманием аргументов функции


0

1

Есть функция:



CGEN_LIBFUNC_PREFIX void CGEN_LIBFUNC_CALL Sorter(float64 SourceArray[],			// Input
		float64 **SortedArray,			// Output
		int32 len,			// Length for SourceArray
		int32 *len2);			// Length for SortedArray

Данная функция сортирует массив SourceArray и записывает его в SortedArray.

Прототип был сгенерирован автоматически (не мной). Вопрос - каким образом передавать и получать массивы в функцию. Очень смущает способ задания SortedArray и его длины, собственно с ним и возникли проблемы.


А исходник посмотреть? Откуда код-то вообще?

Судя по параметрам, я бы предположил, что она сама память выделяет под сортированные данные. о_О

geekless ★★
()

Видимо, предполагается, что будет использоваться как-то так:

int32 len = 10;
float64 *data = new float64[len];

float64 *sorted_data;
int32 sorted_len;

Sorter(data, &sorted_data, len, &sorted_len);

dmitry_vk ★★★
()
float64 src[] = { 3.1, 4.1, 5.9, 2.6, 5.3, 5.8, 9.7, 9.3, 2.3, 8.4, 6. };
float64 *dst;
int32 dst_len;

Sorter(src, &dst, sizeof(src) / sizeof(*src), &dst_len);

for (int i = 0; i < dst_len; ++i)
	printf("dst[%d] = %lf\n", i, (double) dst[i]);

free(dst); // ????
arsi ★★★★★
()
Ответ на: Исходник от zlocm

Зачем повторно создавать тему? Ну не работает ваш M$VS, от нас то что надо?

Eddy_Em ☆☆☆☆☆
()

Да, а что, стандартные функции сортировки (GSL'ные, или хотя бы qsort) использовать считается некошерным?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Функции сортировки

Собственно интересно проверить как LV справляется по отношению к «кошерным», а сортировка это только для начала.

По поводу повторного создания темы: 1. компилю на gcc, и кстати всё работает =). 2. эта тема относится к другому вопросу на другую тему, однако спасибо за совет в следующий раз буду продолжать ветку.

zlocm
() автор топика
Ответ на: Функции сортировки от zlocm

1. компилю на gcc, и кстати всё работает =). 2. эта тема относится к другому вопросу на другую тему, однако спасибо за совет в следующий раз буду продолжать ветку.

А почему «выхлоп» имеет суффикс «exe», или это «прикол» LV?

А если вам не хватает лабвьюшных заголовочных файлов, ИМХО, проще сделать свой файл вроде

#define float64 double
#define int32 int
...
или заменить дефайны на typedef. Этот файл и включать во все лабвьюшные.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

"Выхлоп"

Не совсем понял на счёт выхлопа, но в общем процесс такой: я из блок диаграмм LV создаю исходники на «С» потом пытаюсь их компилировать с помощью GCC.

zlocm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.