刚才在微博上看到一段代码,以为是有问题的代码,最后人家给解释了下,一下子把大家给秒杀了:
#include "stdio.h"
#include "stdlib.h"
#define N 10
#define MAXM ((N * (N-1)) / 2)
struct edge{
int to;
struct edge* next;
} *edges[N], edgepool[MAXM];
int main(){
int m = 10;
struct edge* alloc = edgepool;
for (int i = 0; i < m; ++i){
int f = 3 + i;
int t = 10 + i;
alloc->to = t;
alloc->next = edges[f];
edges[f] = alloc;
printf("%d %lld\n", t, alloc->next);
}
return 0;
}
以为两个数组都是未初始化,但是为毛是如何被初始化的,明天要搞明白啊.