(转)动态数组(c语言实现)
2009-11-16 14:38
316 查看
该文章转自:http://hi.baidu.com/rainday163/blog/item/6105bff591b0dd20bc3109e4.html 我们知道,数组的大小是固定的,但是今天我要告诉大家的是:数组的大小可以由我们设定! 好了,废话少说,咱们还是开始吧! 下面就是代码了: #include <stdio.h> #include <stdlib.h> main() { int i,n,*p; printf("Input n:"); scanf("%d",&n); if(n<=0)//排除无意义的n值 { printf("Error!\n"); return 0;//跳出操作 } p=(int *)calloc(n,sizeof(int));//开辟空间 if(!p)//开辟空间不成功则返回出错信息 { printf("Error!"); return 0; } for(i=0;i<n;i++)//输入操作 { printf("Input the %dth number:\t",i+1); scanf("%d",p+i); } printf("The number you input :\n"); for(i=0;i<n;i++)//输出操作 printf("%d\t",*(p+i)); printf("\n"); free(p);//释放空间 return 0; } 呵呵,此代码在vc 6.0下测试通过……^_^ 相信大家都能看懂的吧,不足指出还望高手指点………^_^ 三维动态数组的代码 void Func(int *ipSource, int iHigh, int iRow, int iColumn) { int ***ipTemp, i, j, k; ipTemp = (int ***)malloc(iHigh*sizeof(int**)); for(i=0; i<iHigh; ++i) { ipTemp[i] = (int **)malloc(iRow*sizeof(int*)); } for(i=0; i<iHigh; ++i) { for(j=0; j<iRow; ++j) ipTemp[i][j] = ipSource + i*iRow*iColumn+j*iColumn; } for(i=0; i<iHigh; ++i) { for(j=0; j<iRow; ++j) for(k=0; k<iColumn; ++k) ipTemp[i][j][k] += 1; } for(i=0; i<iHigh; ++i) { free(ipTemp[i]); } free(ipTemp); return; } |
相关文章推荐