我已经阅读了这段文字:http://www.cplusplus.com/doc/tutorial/dynamic/
你可能会想知道声明普通数组与分配动态内存到指针之间的区别,正如我们刚刚所做的那样。最重要的区别是数组的大小必须是一个常量值,这限制了它的大小为我们在设计程序时决定的值,在执行程序之前。而动态内存分配允许我们在程序执行期间(运行时)使用任何变量或常量值作为其大小来分配内存。
但是我的代码仍然可以正常工作:
但是我的代码仍然可以正常工作:
int number;
cin>>number;
int myArray[number];
cout<<sizeof(myArray)/sizeof(myArray[0])<<endl;
cout<<sizeof(myArray)<<endl;
这是否意味着数组是在动态内存中创建的?或者它是在静态内存中创建的,但其大小仍由运行时确定?
cout<<sizeof(myArray)/sizeof(myArray[0])<<endl;
就会给出一个很好的结果,然后sizeof(myArray)
将返回指针的大小。 - Maroun