正如標題所示,我想重新創建一個與原始大小不同的數組。使用Memcpy來擴大指針數組的大小
我的原始數組是在啓動類時創建的,並且它在類的私有成員中。該數組被稱爲Node * arr [10]。它最初的大小設置爲10,並且一旦應用程序需要更多空間來存儲長度,我希望使用memcpy創建一個新數組,它將與原始arr相同,但唯一的區別是其最大大小。
下面是我提出的代碼,但遇到一個錯誤。示
//Part Of Class
private:
Node* arr[10];
//Part Of Method
size_t newSize = size * 2;
Node** newArr = new Node*[newSize];
memcpy(newArr, arr, size * sizeof(Node*));
maxSize = newSize;
delete[] arr;
arr = newArr;
誤差在最後一行,ARR = newArr,它指出它不能從節點**轉換成節點* [10]。爲什麼是這樣?是因爲Arr是在班級第一次發起時啓動的嗎?
將鼠標懸停在newArr上顯示Node **,同時懸停arr顯示Node * Map :: arr [10]。有人可以解釋我的選擇,因爲我想堅持陣列,我不想改變向量。我知道問題是他們沒有被歸類爲相同的類型,但是如果我刪除了newArr = new Node * ect行中的第二個星號,它說它不能轉換。
感謝您抽出式閱讀我的問題,我希望這個問題是正確的格式,視