Array of size defined by not constant variable

后端 未结 3 1509
温柔的废话
温柔的废话 2020-12-04 01:49

There is such code:

#include 

int main()
{
  int size;
  std::cin >> size;

  size = size + 1;
  int tab3[size];

  tab3[0] = 5;
  std         


        
相关标签:
3条回答
  • 2020-12-04 02:02

    Variable-length arrays in C++ are available as an extension in GCC. Compiling with all warnings should have alerted you to that fact (include -pedantic).

    0 讨论(0)
  • 2020-12-04 02:10

    It is a C99 feature, not a part of C++. They are commonly refered to as VLAs(Variable Length Arrays.

    If you run g++ with -pedantic it will be rejected.

    See GCC docs for more info.

    See also: VLAs are evil.

    0 讨论(0)
  • 2020-12-04 02:13

    GCC provide's VLA's or variable length arrays. A better practice is to create a pointer and use the new keyword to allocate space. VLA's are not available in MSVC, so the second option is better for cross platform code

    0 讨论(0)
提交回复
热议问题