只要理解了原理就不难了。*号再多也只是数据类型,保证分配空间的前后类型匹配再多的维数都不是问题。
只要知道这一个——int *p=(int *)malloc(sizeof(int)*k),n维数组的不同之处也就剩下释放指针了。后分配先释放,如同树状结构。
一
之前对于不定长度的数据一直都是用链表存储的,会使用malloc和new命令,但一直没想到把最基本的数组也用动态的方式存储。
下面是用C中的malloc命令写的创建动态数组的代码:
#include<stdio.h>
#include<stdlib.h>
int* createarray()
{
int* HeadOfArray;
HeadOfArray=(int*) malloc(sizeof(int)*10);//a[10]
for(int i=0;i<10;i++)
HeadOfArray[i]=i;
return HeadOfArray;
}
int main()
{
for(int i=0;i<10;i++)
printf("%d ",createarray()[i]);
system("pause");
}
当然用C++中的new实现也很简单。