{ datatype **dta=na(3,2); /*创建一个3行2列的datatype数组*/ int i,j; if (!dta) { /*如果创建失败,则输出错误信息并结束程序*/ fprintf(stderr,"MEMORY ERROR\n"); return -1; } else { for (i=0; i<3; i++) { /*使用刚才创建的二维数组*/ for (j=0; j<2; j++) { dta[...
直接用list<> ,它的长度是动态的,在开发中,它的使用频率最高
char* buffer;buffer = (char *)malloc(initialize size);buffer = (char *)realloc(buffer, initialize size+add size);一般做法是设定一个初始值,再设定一个追加值。比如:*p初始分配10个字符空间。当空间不够用的时候,每次增加20个字符空间。这样会增加效率。象你这样:初始p = (char *)malloc...
一维的数字先定义int *p;然后写p=(int *)malloc(m*sizeof(int));m由用户自己定义。最后不要忘记释放内存.定义二维动态数组的方法类似。具体操作如下://以下建立的是m行n列的二维动态数组 int **a,i,m,n;//m,n由用户输入,我就不写这个过程了 a=(int **)malloc(m*sizeof(int *);//...
有两种实现方式:1.声明长度为1的数组,在需要添加的时候声明新的二维数组,把值传递过去2.声明成list集合之类的一维数组,里面存放另一个一维数组
void dela(datatype **a,const int m) /*删除用na()函数创建的并且有m行元素的二维数组a*/ { int i;for (i = 0; i<m; i++)free(a[i]);free(a);} int main(void){ datatype **dta=na(3,2); /*创建一个3行2列的datatype数组*/ int i,j;if (!dta) { /*如果创建...