难道这也能建立链表?大家看看对不?
数据结构没有学好!
有时用到链表,只能笨点多用点内存做成数组。以前一直不用realloc(),以为它会把已分配的内存free后再重新分配,今天用了一下发现好像不是。这不也能建立链表吗?看我的测试。
先malloc一个,以后再realloc,新的放到新增的内存里。不也建立一个吗??
大家说说。。
#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>#include <crtdbg.h>void main( void ){ int *p, *pi; int i = 2; int j; p = (int *)malloc(sizeof(int) * i); assert(p != NULL); for(j=0; j<i; j++){ p[j] = j; } for(j=0; j<i; j++){ printf("p[%d]=%d\n", j, p[j]); } puts("\n"); pi = (int *)malloc(500); p = (int *)realloc(p, sizeof(int) * 2 * i); assert(p != NULL); for(j=i; j<i*2; j++){ p[j] = j*2; } for(j=0; j<2*i; j++){ printf("p[%d]=%d\n", j, p[j]); } free(p); free(pi); if(_CrtDumpMemoryLeaks()){ printf("leak\n"); }}