如题
#include <iostream>
int main() {
auto* a = new float[1000000];
auto* b = new float[10]();
for(auto i=0; i<1000000; i++){
std::cout << "a" << a[i] << std::endl;
}
for(auto i=0; i<10; i++){
std::cout << "b" << b[i] << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有什么不同?我试过两个输出都是零。
另外关于智能指针,如何确保它可以零初始化。
std::unique_ptr<int[]> p = std::make_unique<int[]>(100);
Run Code Online (Sandbox Code Playgroud) 我有 3 个问题:
std::move移动内置类型吗?int a = 10;
int b = std::move(a);
Run Code Online (Sandbox Code Playgroud)
会a是无效值吗?
std::move移动指针int *a = new int[10];
int *b = std::move(a);
Run Code Online (Sandbox Code Playgroud)
会a变成无效指针还是nullptr?
std::move移动ac阵列吗?struct S {
int array[10];
}
S a;
for(int i=0; i<10; i++)
a.array[i]=1;
S b;
b = std::move(a);
Run Code Online (Sandbox Code Playgroud)
会a.array变成无效数组吗?