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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
#1

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

31.10.2013, 02:18. Просмотров 364. Ответов 10
Метки нет (Все метки)

код :
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 - нет
по идее статические массивы должны знать свою размерность заранее?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 02:18     почему работает несмотря ни на что?
Посмотрите здесь:
Почему адреса у указателей разные, несмотря на то, что они указывают на одну и ту же переменную? C++
C++ Несмотря на ошибку, все работает
C++ Почему в динамическом массиве не работает то, что работает со статическим?
Почему в библиотеке не работает то, что спокойно работает в программе? C++
C++ Не понимаю, что не так, почему не работает
После удаления (перезаписи) данных из бинарного файла, файл всё равно существует, несмотря на то, что он пуст C++
C++ Несмотря на то, что переменная С имеет тип long int, возведение, к примеру, 100 в степень 5 совершается неверн
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.10.2013, 02:26     почему работает несмотря ни на что? #2
это называется VLA, поддерживается mingw в таком виде и по умолчанию это расширение включено
MrGluck
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,784
31.10.2013, 02:28     почему работает несмотря ни на что? #3
Кстати говоря, в С99 они включены, жаль лишь что майкрософт на это наплевать (и на С99 и на VLA). Так бы и в плюсовый стандарт добрались.
Jupiter
31.10.2013, 02:34
  #4

Не по теме:

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

gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,784
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
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 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
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 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++ Программа пропускает ввод данных несмотря на fflush
Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? C++
Неожиданный результат при выводе значения переменной, несмотря на инкремент C++
C++ error C2512: no appropriate default constructor available, несмотря на наличие конструктора по умолчанию

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

Или воспользуйтесь поиском по форуму:
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     почему работает несмотря ни на что?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru