C语言中数组大小不确定可否用指针来解决?该如何处理

C语言中数组大小不确定可否用指针来解决?
最近一直纠结于matlab代码C化,其中matlab的向量可以任意长度但是C的数组大小必须事先声明最让我想不开...

但是最近发现,如果我声明一个指针,然后把它按数组的格式赋值和计算,是不是就可以实现数组的无限长了?

举个小程序的例子

#include<stdio.h>
void main()
{
 double *x;
  
  x[0]=1;
  x[1]=2;
  printf("x[0] is: %f\nx[1] is: %f",x[0],x[1]);

}

我用turboC运行了,是可以运行的...(实在不好意思说我还用的turboC...)

但是我写的程序里大概声明了10个左右的这样的指针,然后当成数组形式赋值运算之类的,程序就运行不了了...弹出一个什么提示illegal termination之类的窗口...但是可以compile

我想问我这样的想法,就是声明指针变量但是把其当做数组来运算以避免声明数组大小可以实现吗?错误在哪里?
如果不能实现,有什么其他办法能实现避免声明数组大小吗?
还有关于malloc,传入函数的int值可以作为数组的大小来声明吗?比如:
void test(int n)
{
array[i]=(int *)malloc(n*sizeof(n)); 
}
可以吗?

谢谢谢谢~最近被matlab和C双重折磨呀...如果有关于mex-file的问题也欢迎相互讨论O(∩_∩)O~

大大的感谢

------解决方案--------------------
C/C++ code

#include<stdio.h>
void main()
{
 double *x;
   
  x[0]=1;
  x[1]=2;
  printf("x[0] is: %f\nx[1] is: %f",x[0],x[1]);

}

------解决方案--------------------
通过指针可以完成数组的功能,比价麻烦的是资源的申请和释放,这个需要特别的注意。
------解决方案--------------------
探讨
引用:
最好的办法是预测一个可能的数组最大值,然后一次性分配,以后就用这一个单一的缓冲区,这是效率最高的


哦...原来这样子效率最高呀...就是直接给一个最大值...比动态分配计算速度要快是吗?您这个答案让我好高兴呀,哈哈~我纠结了这么久的问题~如果有十几个大小为几万的数组也能保证运算速度吗?

------解决方案--------------------
探讨

引用:
引用:
引用:
引用:
可以,但你这么用风格不好,最好在函数外面malloc,传入指针,用完后函数外面free

但是为什么我的程序跑不了?运行的话TC会自动关闭...但是如果换成是以知大小数组声明的话就能运行。
另外这样子计算速度……