|
Проблемы, связанные с общей памятью и списки
Привет, я должен поставить в общей памяти список с объектом этой структуры:
Код:
typedef struct Obj{
char objname[20];
struct Obj *nextObj;
}Object
Я заполнены моем списке с (например) 10 элементов, но когда я пытаюсь поставить его в общей памяти следует другого процесса я получаю сегментации вины после первого чтения запись ..
Я читал в другой поток (здесь -> динамический общей памяти ) malloc что дает sone проблемы с общей памятью
Цитата:
|
Если вы призвали malloc создать linked_list_header-> PTR, Затем адрес возвращается malloc является частным с призывом (процесс, который требует malloc) Процесс. То же с NODE-> буфер. Вы должны передать эти вещи в общем "на руки" без вызова malloc.
|
но я не понимаю, что я должен теперь делать и как решить мою проблему.
Я попытался поделиться объект таким образом:
Код:
Obj *head; //pointer to the head of my FILLED list
int shmid;
Obj *sh;
...
shmid = shmget(SHMKEY,(sizeof(Obj)*10),0666|IPC_CREAT|IPC_EXCL);
...
sh = (Obj *)shmat(shmid, 0, 0666);
...
*sh = *head;
Вероятно, я пропустил кое-или, может быть, я совершенно неправильно ... каким образом я могу передать объект в общем "на руки" без вызова malloc?
Спасибо за вашу поддержку, наилучшие пожелания.
|