Форум программистов, компьютерный форум CyberForum.ru

почему работает несмотря ни на что? - C++

Восстановить пароль Регистрация
 
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
31.10.2013, 02:18     почему работает несмотря ни на что? #1
код :
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main()
{   int u;
    cin>>u;
    int uu[u];
    for (int i=0;i<u;i++) uu[i]=i;
    for (int i=0;i<u;i++) cout<<i<<" ";
    return 0;
}
компилятор mingw-работает, vs - нет
по идее статические массивы должны знать свою размерность заранее?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.10.2013, 02:26     почему работает несмотря ни на что? #2
это называется VLA, поддерживается mingw в таком виде и по умолчанию это расширение включено
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
31.10.2013, 02:28     почему работает несмотря ни на что? #3
Кстати говоря, в С99 они включены, жаль лишь что майкрософт на это наплевать (и на С99 и на VLA). Так бы и в плюсовый стандарт добрались.
Jupiter
31.10.2013, 02:34
  #4

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Так бы и в плюсовый стандарт добрались.
свят свят свят, есть более насущные вещи чем какой-то vla

gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,921
Записей в блоге: 1
31.10.2013, 02:36     почему работает несмотря ни на что? #5
По ошибке.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc,char** argv)
{    
   const int MAX_DIMENSION = 128;
   
   int   iRealDim = 0;
 
   cin >> iRealDim;
   
   int   uu[MAX_DIMENSION];
   
   for (int ii = 0; ii < iRealDim; ++ii) 
   {
      uu[ii] = ii;
   }
 
   for (int jj = 0; jj < iRealDim; ++jj) 
   {
      cout << uu[jj] <<" ";
   }
 
   return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
31.10.2013, 02:39     почему работает несмотря ни на что? #6

Не по теме:

Просто мне кажется что это заметно облегчило бы жизнь новичкам на начальном этапе.



Добавлено через 1 минуту
Цитата Сообщение от gazlan Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main(int argc,char** argv)
{ * *
* *const int MAX_DIMENSION = 128;
int * iRealDim = 0;
cin >> iRealDim;
int * uu[MAX_DIMENSION];
for (int ii = 0; ii < iRealDim; ++ii) 
* *{
* * * uu[ii] = ii;
* *}
for (int jj = 0; jj < iRealDim; ++jj) 
* *{
* * * cout << uu[jj] <<" ";
* *}
return 0;
}
из разряда как делать не надо.
Допустим, я ввел 129. Только про if не надо говорить.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
31.10.2013, 02:52  [ТС]     почему работает несмотря ни на что? #7
gazlan, а к чему твой код? к какой ошибке?
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,921
Записей в блоге: 1
31.10.2013, 02:55     почему работает несмотря ни на что? #8
Цитата Сообщение от soican Посмотреть сообщение
к какой ошибке?
К исходному посту. int uu[u]; Это не работает и не должно работать в C++.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
31.10.2013, 03:02  [ТС]     почему работает несмотря ни на что? #9
Цитата Сообщение от gazlan Посмотреть сообщение
К исходному посту. int uu[u]; Это не работает и не должно работать в C++.
это работает с mingw
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,921
Записей в блоге: 1
31.10.2013, 03:06     почему работает несмотря ни на что? #10
Цитата Сообщение от soican Посмотреть сообщение
с mingw
У GCC есть непереносимые расширения, которыми, очевидно, не стоит пользоваться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 03:12     почему работает несмотря ни на что?
Еще ссылки по теме:

C++ Не понимаю, что не так, почему не работает
C++ Почему не работает?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
31.10.2013, 03:12  [ТС]     почему работает несмотря ни на что? #11
почитай здесь http://habrahabr.ru/post/195148/ эти расширения будут стандартом
Yandex
Объявления
31.10.2013, 03:12     почему работает несмотря ни на что?
Ответ Создать тему
Опции темы

Текущее время: 22:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru