亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

VS2010,error C2466: cannot allocate an array of constant size 0

void __merge(T arr[], int l, int mid, int r){


T aux[r-l+1];

? ? for( int i = l ; i <= r; i ++ )

? ? ? ? aux[i-l] = arr[i];


? ? int i = l, j = mid+1;

? ? for( int k = l ; k <= r; k ++ ){


? ? ? ? if( i > mid )? ?{ arr[k] = aux[j-l]; j ++;}

? ? ? ? else if( j > r ){ arr[k] = aux[i-l]; i ++;}

? ? ? ? else if( aux[i-l] < aux[j-l] ){ arr[k] = aux[i-l]; i ++;}

? ? ? ? else? ? ? ? ? ? ? ? ? ? ? ? ? { arr[k] = aux[j-l]; j ++;}

? ? }

}

f:\c++程序\mergesort\mergesort\demo.cpp(14): error C2466: cannot allocate an array of constant size 0

1>f:\c++程序\mergesort\mergesort\demo.cpp(14): error C2133: 'aux' : unknown size

百度上有說,數組要求在編譯時就確定大小,不能用變量來定義數組大小,也不能不指定數組大小。

但是就是需要這樣定義變長定義數組大小,T aux[r-l+1],請問有其他辦法可以解決這個問題嘛?


正在回答

2 回答

https://img1.sycdn.imooc.com//5cab2e5000012cba19201080.jpg

vs2017是可以編譯通過的,我沒有2010的環境,你試一試吧!


0 回復 有任何疑惑可以回復我~

vs2017是可以編譯通過的,我沒有2010的環境,你試一試吧!

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之模板篇
  • 參與學習       91140    人
  • 解答問題       325    個

本C++教程力求即學即會,所有知識以實踐方式講解到操作層面

進入課程

VS2010,error C2466: cannot allocate an array of constant size 0

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號