C 创建包含带有自定义对象的二维链表数组的结构
我是C语言的新手,正在努力理解一些基本的东西。 我试图创建一个结构,它包含一个由链表组成的数组。 关于这件事C 创建包含带有自定义对象的二维链表数组的结构,c,arrays,object,linked-list,C,Arrays,Object,Linked List,我是C语言的新手,正在努力理解一些基本的东西。 我试图创建一个结构,它包含一个由链表组成的数组。 关于这件事 -------------------------------- | A | B | C | -------------------------------- | | | V V V ------- ------- ------- |
--------------------------------
| A | B | C |
--------------------------------
| | |
V V V
------- ------- -------
| a | | b | | c |
------- ------- -------
|
V
--------
| a1 |
--------
这意味着我将有一个数组,其中包含每个链表的头a、B和C,每个头将包含指向下一个节点的指针
我有一个struct对象
typedef struct Object {
void* data;
struct Object* next;
struct Object* head;
}Object;
还有一张桌子,里面有更多的信息
typedef struct Table {
Object** arr;
//More info...//
}Table;
我有一个函数,它应该用数组创建一个表
Table* createTable(){
Table* table = (Table*)malloc(sizeof(struct Table*));
Object **array = (Object**)malloc(3*sizeof(struct Object*));
for(int j = 0; j < size; j++){
array[j] = malloc(sizeof(struct Object));
}
table->arr = array;
return table;
}
但是我所有的内存都没有像我希望的那样工作,我一直得到一个只有一个节点的数组。
我想我还是缺少一些基本的东西
谢谢Table*Table=Table*mallocsizeofstruct Table*中有一个错误,应该是Table*Table=mallocsizeofstruct Table
但代码的其余部分是这样编写的,它将创建一个大小为3的指向对象的指针数组,它将通过让数组中的每个元素指向您创建的一个对象来初始化该数组。我假设您的size变量在其他地方初始化为3,否则您现在知道在哪里搜索。因此,很明显,在数组的每个位置只得到一个元素,而不需要创建更多的…mallocsizeofstruct表*->mallocsizeofstruct表。。。forint中的大小j=0;j<尺寸;j++?参见。此外,您所做的与设置哈希表没有太大区别。您可能希望了解bucket数组如何为发生冲突时实现的链式列表保留头部。对象**数组=malloc 3*sizeof*数组;这就足够了。