gpt4 book ai didi

c++ - 数组的动态分配

转载 作者:行者123 更新时间:2023-11-28 03:14:32 27 4
gpt4 key购买 nike

为什么在 C++ 中不可能动态分配数组但下面的代码编译成功?在取消注释时显示错误??

#include<iostream>
#include <string>
using namespace std;
int main()
{
string aa;
cin>>aa;
int a[aa.size()];// though allocating the array dynamically the compilation succeeded
cout<<"COMPILATION SUCCESS"<<endl;

/*char *p;
cin>>p;
int y=sizeof(p);
int b[y];
cout<<"COMPILATION ERROR"<<endl;
*/


/*
int tt;
cin>>tt;
int c[tt];// shows error
cout<<"ERROR";
*/
}

最佳答案

因为您似乎正在使用允许这样做的编译器。 C++ 中的 VLA 是 GNU 扩展,您是否有可能使用 g++clang++ 编译它?

将您的编译器设置为严格的 ISO C++ 模式,它会警告您或出错。

我从 clang++ 得到了什么:

h2co3-macbook:~ h2co3$ clang++ -o quirk quirk.cpp -Wall -std=c++11 -pedantic
quirk.cpp:6:9: warning: variable length arrays are a C99 feature [-pedantic,-Wvla]
char cs[s.size() + 1];
^
quirk.cpp:6:7: warning: unused variable 'cs' [-Wunused-variable]
char cs[s.size() + 1];
^
2 warnings generated.

关于c++ - 数组的动态分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17344200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com