void merge_sort(int arr[], const int len) {
int reg[len];
merge_sort_recursive(arr, reg, 0, len - 1);
}
第二行的len會報錯,說一定要是一個常量,可是我傳入的是一個const int,難道還是不算常量嗎?
因為定義數組的時候必須是個常量啊,你在調用這個函數之前reg數組的大小必須知道,就好比如果寫成reg[3],你在調用merge_sort()之前就知道reg的大小是3,這才是所謂的常量,你的len傳給函數時,編譯器才知道reg數組的大小,這顯然是錯的啊