这就是C语言的局限性吗,Java中有对应的函数一调用就可以复制一个完全一样的数组
来源:6-1 数组基础【C语言设计哲学】

懒洋洋爱学习
2023-03-09
老师,这是我用C语言写的归并算法的归并过程,您肯定了解归并过程中会设计到创建或开辟一个和原数组一样大小空间的数组,我的问题在于:C语言定义数组[ ]内部没法时变量,就不能是int copy[end - start + 1],就是在这里没办法开辟一个和原数组恰好一样大小的数组,我只能提前给它一个大小,万一这个数组大小给小了程序就错了,万一给大了那就又浪费了。
就网上的答案也只是在外面定义一个宏常量,您能理解我的问题所在吗,有没有巧妙的C语言语法来解决这个问题,我试着用动态分配的想法,开辟确定大小的空间,但还是不行…
写回答
1回答
-
可能VLA会满足你的需求,C99提供了支持,gcc很早就支持了。注意,这个C++不支持。C语言的数组是开辟在栈内存上的,需要编译时确定内存大小,这个跟Java的机制不一样,Java的数组开辟在堆上,可以动态分配空间。112023-03-09
相似问题
进一步学习gtk 面向对象的疑惑
回答 1
老师,关于问答区一个问题
回答 1