Как передать массив структур?Передача массива структур
До сих пор у меня есть это, который является глобальным:
typedef struct _line
{
float val1;
int val2;
} line;
Затем я прочитал данные из файла в этой структуре
struct _line* read_file()
{
typedef struct _line *Lines
Lines *array = malloc(num_lines * sizeof(Lines));
//read values into structures here
Тогда я завалить структуры в массиве со значениями. Если я printf("%d", (*array[1]).val1);
я получить правильное значение здесь, в этом конкретном методе
Затем я возвращаюсь массив как так
return *array
Но когда я делаю это, только 0th структура правильно читает в методе я вернулся , Чтение 1-го элемента просто печатает случайные значения. Что я делаю неправильно?
По вашему (на маленьком) коде и описанию вы даже не сможете скомпилировать код. Создайте [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и покажите нам. –
Кроме того, при распределении памяти с помощью 'malloc' содержимое * неопределенно * до тех пор, пока вы его не инициализируете, а также по своему неопределенному описанию вы не инициализируете всю выделенную память. Существует также проблема выделения множителя 'sizeof (Lines)', но 'sizeof (Lines)' дает вам размер * указателя *, а не структуру, вместо которой вы хотите 'sizeof (* array)' (Урок здесь: не используйте псевдонимы типов указателей). –
остановить использование указателя typedefs. Ваш malloc ошибочен. –