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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創建一個動態整數數組

如何創建一個動態整數數組

C++
湖上湖 2019-10-09 17:43:28
如何使用new關鍵字在C ++中創建動態整數數組?
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

int main()

{

  int size;


  std::cin >> size;


  int *array = new int[size];


  delete [] array;


  return 0;

}

不要忘記為delete您分配的每個數組new。


查看完整回答
反對 回復 2019-10-09
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

從C ++ 11開始,有一種安全的替代方法,new[]與delete[]零開銷不同,它是std::vector:


std::unique_ptr<int[]> array(new int[size]);

在C ++ 14中:


auto array = std::make_unique<int[]>(size);

以上兩個都依賴于相同的頭文件, #include <memory>


查看完整回答
反對 回復 2019-10-09
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

一旦對動態數組提出疑問,您可能不僅希望創建具有可變大小的數組,而且還希望在運行時更改它的大小。這是帶有的示例memcpy,您也可以使用memcpy_s或std::copy。取決于編譯器,<memory.h>或者<string.h>可能是必需的。使用此功能時,您將分配新的存儲區域,將原始存儲區域的值復制到該區域,然后釋放它們。


//    create desired array dynamically

size_t length;

length = 100; //for example

int *array = new int[length];


//   now let's change is's size - e.g. add 50 new elements

size_t added = 50;

int *added_array = new int[added];


/*   

somehow set values to given arrays

*/ 


//    add elements to array

int* temp = new int[length + added];

memcpy(temp, array, length * sizeof(int));

memcpy(temp + length, added_array, added * sizeof(int));

delete[] array;

array = temp;

您可以使用常數4代替sizeof(int)。


查看完整回答
反對 回復 2019-10-09
  • 3 回答
  • 0 關注
  • 1433 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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