我有以下结构和定义:
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 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 的指针。 List 包含一个 ART 和指向下一个 Art 的指针。
希望任何人都可以帮助我创建这个结构。
最佳答案
当您声明第一个 ART 时,您创建了一个 ART 实例。如果要创建多个,则需要 malloc(sizeof(ART)) 获取指向内存的指针以存储另一个实例。
关于将指针复制到指针并复制结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33306636/