Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
soican
49 / 23 / 3
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
#1

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

31.10.2013, 02:18. Просмотров 404. Ответов 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 - нет
по идее статические массивы должны знать свою размерность заранее?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 02:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос почему работает несмотря ни на что? (C++):

Почему адреса у указателей разные, несмотря на то, что они указывают на одну и ту же переменную?
Почему адреса у указателей разные, они же указывают на одну и туже переменную...

Несмотря на ошибку, все работает
#include &lt;iostream&gt; using namespace std; float ctof(float c) { float f;...

Почему в библиотеке не работает то, что спокойно работает в программе?
День всем добрый! Я здесь решил собрать библиотеку для конструктора игр Game...

Почему в динамическом массиве не работает то, что работает со статическим?
Программа зависает #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; ...

Что за ошибка? Почему не работает?!
возникает ошибка когда хочу обратится к элементу массива через указатель на...

Не понимаю, что не так, почему не работает
#include&lt;cstdlib&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &quot;iostream&quot;...

10
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.10.2013, 02:26 #2
это называется VLA, поддерживается mingw в таком виде и по умолчанию это расширение включено
0
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,248
31.10.2013, 02:28 #3
Кстати говоря, в С99 они включены, жаль лишь что майкрософт на это наплевать (и на С99 и на VLA). Так бы и в плюсовый стандарт добрались.
0
Jupiter
31.10.2013, 02:34
  #4

Не по теме:

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

0
gazlan
3139 / 1915 / 311
Регистрация: 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;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,248
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 не надо говорить.
0
soican
49 / 23 / 3
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
31.10.2013, 02:52  [ТС] #7
gazlan, а к чему твой код? к какой ошибке?
0
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
31.10.2013, 02:55 #8
Цитата Сообщение от soican Посмотреть сообщение
к какой ошибке?
К исходному посту. int uu[u]; Это не работает и не должно работать в C++.
0
soican
49 / 23 / 3
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
31.10.2013, 03:02  [ТС] #9
Цитата Сообщение от gazlan Посмотреть сообщение
К исходному посту. int uu[u]; Это не работает и не должно работать в C++.
это работает с mingw
0
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
31.10.2013, 03:06 #10
Цитата Сообщение от soican Посмотреть сообщение
с mingw
У GCC есть непереносимые расширения, которыми, очевидно, не стоит пользоваться.
0
soican
49 / 23 / 3
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
31.10.2013, 03:12  [ТС] #11
почитай здесь http://habrahabr.ru/post/195148/ эти расширения будут стандартом
0
31.10.2013, 03:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 03:12
Привет! Вот еще темы с решениями:

После удаления (перезаписи) данных из бинарного файла, файл всё равно существует, несмотря на то, что он пуст
после удаления(перезаписи) данных из бинарного файла, файл всё равно...

Несмотря на то, что переменная С имеет тип long int, возведение, к примеру, 100 в степень 5 совершается неверн
Ребят, раньше программировал ( на уровне любителя ) только на скриптовых языках...

Почему код не работает хотя ошибок нет? Что-то не так с выделением памяти?
#include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt;...

В чём ошибка? Почему пишет,что #include "stdafx.h" не работает и тд нету библиотеки,как можно код поменять?
В чём ошибка? Почему пишет,что #include &quot;stdafx.h&quot; не работает и тд нету...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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