【发布时间】:2017-03-09 14:35:46
【问题描述】:
我有一个名为 arrayOfElements 的结构数组,这些结构称为 Elements ,它有一个 void 指针
typedef struct {
void* data;
} Element;
我已经 malloc 的 arrayOfElements
Element* arrayOfElements;
arrayOfElements= malloc(4 * sizeof(Element));
并在结构中存储了整数和字符串
arrayOfElements[3].data = malloc( sizeof(int) );
ptr = arrayOfElements[3].data;
*ptr = 65;
strcpy(arrayOfElements[1].data, token);
然后我创建了一个链表
typedef struct LinkedList {
void* arrayOfStruct;
struct LinkedList* next;
} LinkedList;
并创建了一个函数来导入 arrayOfELements 的实例并使 void* arrayOfStruct 指向它
LinkedList* insert(LinkedList* head, Element* inArrayOfElements) {
LinkedList* insertNode = malloc(sizeof(LinkedList));
insertNode->next = head;
insertNode->arrayOfStruct = (void*)inArrayOfElements;
return insertNode;
}
问题
我的问题是在我将 void* arrayOfStruc 指向 arrayOfELements 的一个实例之后,我如何打印我之前知道的 arrayOfElements[3] 的 void* 数据是一个 int 并且它的值为 65
LinkedList 中的当前节点 ---> arrayOfElements[3] --> Element 结构中的数据成员(应该等于 65)
我觉得我应该指向一个 int 指针然后打印它,但我不确定这样做的语法
【问题讨论】:
标签: c pointers struct linked-list