出现编译器错误C3863不可指定数组类型”T [r-l+1]”和编译器错误C2131表达式的计算结果不是常数怎么办
来源:3-2 归并排序法的实现
Murrayxhng
2022-01-26
问题描述:
写回答
3回答
-
liuyubobobo
2022-01-27
@Cpaunvisual_studio 的回答非常正确。也可以参考这里:http://coding.imooc.com/learn/questiondetail/3044.html
具体代码可以参考这里课程代码中的注释说明:https://git.imooc.com/coding-71/coding-71/src/master/03-Sorting-Advance/Course%20Code%20%28C++%29/02-Merge-Sort/main.cpp
继续加油!:)
00 -
Cpaunvisual_studio
2022-01-26
我也用Visual Studio.我通常对变长数组用堆变量解决
00 -
Cpaunvisual_studio
2022-01-26
由于c++是静态编译,所以数组大小在编译时确定
可以采用堆数组,堆数组用new创建,堆变量在运行时确定
int a=8; int b[a+1]; //错误: a+1表达式在运行才确定,但数组需要在编译时有具体大小 int x=8; int *y=new int[x];//用简单地用指针指向堆数组地址
堆数组可以用一般方式与数组方式取值
*(heap_var+num); heap_var[num];
00
相似问题