实际上,我已经看到,当我尝试定义数组时,最好在定义索引大小之后分配大小。因此,以这种方式定义大小...
#include<bits/stdc++.h>
using namespace std;
main()
{
int *array,size;
cout<<"The size of the array pointer: "<<sizeof(array)<<endl;
cout<<"Enter the size of your array: ";
cin>>size;
array=new int[size];
cout<<"The size of the array pointer: "<<sizeof(array)<<endl;
// During the compilation the above line of code is ignored & won't shown in the Console.
cout<<"Enter elements:"<<endl;
for(int i=0;i<size;i++)
{
cin>>array[i];
}
cout<<"Your array: ";
for(int i=0;i<size;i++)
{
cout<<array[i]<<" ";
}
cout<<endl<<"The size of the array pointer: "<<sizeof(array)<<endl;
}
但是,从一开始数组的大小就显示8个字节,而每个整数占用4个字节的内存。存储任何大小的数组时我都没有问题。它与参数化数组相同。但是,我的问题是为什么只占用8个字节的内存?
答案 0 :(得分:0)
sizeof(array)
是指针的大小,而不是int
或您的数组。
通常,请改用std::vector<int>
。
不要使用#include<bits/stdc++.h>
。