C - Как я могу сохранить структуры в разделе памяти malloc'd? - PullRequest
1 голос
/ 15 сентября 2010

Мой вопрос довольно простой, но это было давно.Я читаю в текстовом файле и сохраняю числа в тексте в структуру «Запись».После того, как я прочитал текст в буфер записи, я хочу поместить его в область памяти.

typedef struct
{
 int line_status[64];
 float line_data[64], relativetime;
 unsigned long blkhdr_ticks;
} Record;

Record *storage; 
storage = (Record*)malloc(nRange*sizeof(Record)); 
Record buffer;

Где nRange - это случайное число, а буфер - это запись со значениями, хотя я не перечислил свой код, который присваивает их буферу.Я думал, что синтаксис был что-то вроде:

&storage = buffer;

Но я знаю, что это не так.Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

5 голосов
/ 15 сентября 2010

Вы также можете рассматривать хранилище как массив.

storage[0] = buffer;
storage[1] = anotherBuffer;
...
storage[nRange-1] = lastBuffer;
4 голосов
/ 15 сентября 2010

Вы должны быть в состоянии сказать *storage = buffer; или storage[0] = buffer;.

1 голос
/ 15 сентября 2010

Поскольку storage также можно рассматривать как массив записей nRange (я думаю, это действительно ваше намерение), вы можете просто сделать:

 storage[0] = buffer;
 storage[someOtherIndex] = buffer;
...