我是 C++ 的初学者,我想使用动态内存分配技术而不是静态(如数组) 例如我想制作一维数组 整数a[100]; 我应该如何对指针做同样的事情? 我基本上感到困惑的是,我浏览了互联网上的一些教程,他们这样做了
int a[100];
int *arr = &a[0];
我发现它毫无用处,因为首先我们声明数组 a 的大小为 100,然后我们再次使用 arr 指针 我可以这样做吗
int a[1];
int *arr= &a[0];
现在如果我为 arr[i] 分配随机值(从 i=0 到 i= 用户定义) 它会接受超出 i=1 的情况
最佳答案
will it accept it beyond i=1
不,它是 UB,因为您正在尝试访问根本没有分配的内存。
你可能想要
int* a = new int[user_define_value];
// use it from a[0] ~ a[user_define_value - 1]
delete[] a;
顺便说一句:了解 std::vector
是个好主意。如果你想使用动态大小数组,和 std::array
用于 C++ 中的静态大小数组。
关于c++ - 关于指针作为数组的一些疑问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613223/