ヒープ領域とは、プログラム実行時に動的にメモリを割り当てるための領域
ヒープ領域は関数が終わっても存在することができ、所有者が居なくなった時点で解放される
struct Point {
x: i32,
y: i32,
}
fn main(){
let p: Box<Point> = Box::new(Point {x:100, y:200});
println!("{} {}", p.x, p.y);
}
new演算子、std::vectorはヒープ領域を使用している。
#include <iostream>
#include <limits>
#include <exception>
int main()
{
std::cout << std::hex << std::numeric_limits<uintptr_t>::max() << std::end;
try {
char* temp= new char[std::numeric_limits<uintptr_t>::max()];
std::cout << temp << "\n";
}
catch(std::bad_alloc& e){
std::cout << e.what() << "\n";
}
return 0;
}
#include <iostream>
#include <limits>
#include <exception>
int main()
{
int* array = new int[5];
for(int i = 0; i < 5; ++i){
array[i] = i*i;
}
delete[] array;
array = nullptr;
return 0;
}
いまいちboxの使い所と書き方がわかりませんな…