首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言定义数组但是数组长度不确定怎么处理

2012-03-28 
C语言定义数组但是数组长度不确定怎么办手里有一小段MATLAB程序需要转化成C语言,纯C,不能用C++。由于本人比

C语言定义数组但是数组长度不确定怎么办
手里有一小段MATLAB程序需要转化成C语言,纯C,不能用C++。

由于本人比较菜,有个问题一直困扰我不知道怎么办...

MATLAB里输入的矩阵可以是任意大小的,但是C语言里的数组一定要是固定大小,对于大小不能确定的数组我想到了用malloc动态申请内存,但是就算用malloc也必须是申请一直大小的存储空间(比如键盘输入的).....

但是我的matlab里的向量的长度是根据以前的数据算出来的,在MATLAB里非常容易得到向量长度,一句length(a)就知道向量长度了,但是C里和MALTAB里的length函数相似的怎么实现?

跪求跪求ORZ...MATLAB里不知道长度的向量怎样转化成C语言里的数组并且可以求得其元素个数???

万分感谢~!

[解决办法]
假设数组存的是double类型的变量
double * p = (double *)malloc(sizeof(double)*a.length)
[解决办法]
malloc吧
[解决办法]
假设数组存的是int型
那么 你先申请10个元素
int* a = (int*)malloc(sizeof(int)*10);
如果又来了个元素,那么你就可以
a=(int *)realloc(a,11*sizeof(int)); 
求元素个数int i,n=1;
for(i = 0;(a+i)!=NULL;i++)
{
;
}
n=i+1;//n就是元素个数
[解决办法]
如果你定义的是int型数组比如 int a[10];他的长度就更简单了,n = sizeof(a)/sizeof(int)
[解决办法]
据说 matlab 不是可以自动转换成 c 吗

热点排行
Bad Request.