У меня есть следующие структуры и определение:Копирование Указатель на указатель и копирования структуры
typedef struct
{
int nr;
char name[20];
} ART;
typedef struct List
{
ART Art; /* Daten des Artikels */
// Zeiger auf nächstes Listenelement
struct List *next;
} LIST;
typedef LIST *pointList;
pointList pHead = NULL;
Я создать АРТ-структуру. Затем я хочу создать функцию для создания списка со многими структурами ART.
ART art;
scanf_s("%d", %art.nr);
scanf_s("%s", art.name, (int)sizeof(art.name) - 1);
LIST new;
new.Art = art;
if(pHead)
memcpy(&new.naechstes, &pHead, sizeof(LIST)); //Think its not the right one?
pointList newList = &new;
memcpy(&pHead, &newList, sizeof(LISTENELEMENT));
Моя проблема в том, что я не знаю, как скопировать указатель на структуру и изучить ее. memcpy не работает должным образом ... но если я инициализирую переменную с указателем, ее просто указатель и никакая копия.
Таким образом, целью является создание списка предметов искусства, а pHead - указатель первого СПИСОК. И List содержит ARt и указатель на следующий Art.
Надеюсь, кто-нибудь может помочь мне создать эту конструкцию.
Вы пытаетесь создать связанный список? –
Пожалуйста, уберите код. В некоторых местах у вас все еще есть немецкие имена. Вам также необходимо сформировать лучшее понимание указателей и для чего они предназначены. Здесь указатель 'next' _points_ к следующему элементу, он не выполняет _ копию следующего элемента вокруг. Указатели - это только связи между существующими элементами, а не самими элементами. Связанные списки - очень популярная тема. Я предлагаю вам немного перейти к кодированию связанного списка. –
Что именно это = >> scanf_s ("% d",% art.nr) ;? =>% – Michi