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

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

31.10.2013, 02:18. Просмотров 416. Ответов 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
Ответы с готовыми решениями:

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

Несмотря на ошибку, все работает
#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; ...

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

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

Не по теме:

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

0
gazlan
3143 / 1919 / 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Эксперт С++
8105 / 4956 / 1436
Регистрация: 29.11.2010
Сообщений: 13,450
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
3143 / 1919 / 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
3143 / 1919 / 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

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

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

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


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

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

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