0

所以我试图制作一个链表数组,起初我有以下代码:

typedef struct node{
    int data;
    struct node *next;
} node;

struct ko {
    struct node *first;
    struct node *last;
} ;

struct ko array[6];

使用此代码,程序的其余部分运行良好,但是,我希望用户能够在程序启动时定义数组大小,经过一些研究,我认为它应该是这样的:

.h 文件

typedef struct node{
    int data;
    struct node *next;
} node;



struct ko {
    struct node *first;
    struct node *last;
} ;

struct ko *array;

main.c 文件:

int size;
printf("array size: ");
scanf("%d", &size);
array = malloc(sizeof(struct ko) * size);

使用这段代码,程序编译得很好,但它只是在运行时卡住了,它没有崩溃,它什么也不做......所以我想知道问题出在这段代码中,还是在其他地方程序..谢谢

4

2 回答 2

0

程序只有一个错误,malloc返回void*,需要将其大小写为(struct ko*)。除此之外,我没有看到任何错误。我也确实在 VS 中检查了相同的程序。它工作正常。

于 2013-05-23T10:20:38.290 回答
0

好吧,这里没有什么是立即错误的......只需确保将数组内容初始化为零(实际上 100% 可移植的方式是使用for循环,但calloc()在所有常用平台上都可以使用)。

于 2013-05-23T09:33:58.187 回答