Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 16

Visual c++ не хочет компилировать, в отличие от MinGW

23.02.2016, 10:05. Показов 2001. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем есть такой код(решение на 10 упражнение к главе 5 книги Прата).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include<cstdlib>
using namespace std;
int main()
{
    cout << "Enter number ";
    int n;
    cin >> n;
    char ch[n][n];
    char o = '.', p = '*';
    for (int i = 0;i<n;i++)
    {
        for (int j = 0;j<n;j++)
            ch[i][j] = o;
    }
    for (int i = 0;i<n;i++)
    {
        for (int j = n - 1;j >= n - (i + 1);j--)
            ch[i][j] = p;
    }
    for (int i = 0;i<n;i++)
    {
        for (int j = 0;j<n;j++)
            cout << ch[i][j];
        cout << endl;
    }
    system("pause");
    return 0;
}
Visual C++ не хочет его компилировать тк параметры массива (char ch[n][n]) имеют неконстантное значение. Но MinGW компилит без вопросов и все работает.
Вопрос в следующем - можно ли оставить код как есть, компилировать с MinGW, а Visual c++ послать куда подальше? Или я не прав и нужно переписывать код чтоб было все по феншую?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2016, 10:05
Ответы с готовыми решениями:

Возможно ли компилировать графику через MinGW?
У меня есть программа: см. далее Как её скомпилировать через MinGW? (ОС Win Se7en 64x) #include &lt;graphics.h&gt; #include...

НЕ хочет компилировать
Найдите пожалуйста ошибку, и можете объяснимть почему void mul( int x, int y) ставнять не в фигурные скобки?(код с Herbert Schild) ...

Скачал MinGW добавил в переменные среды, начал компилировать программу а тут:
User@USER-PC C:\C file $ gcc Lib.c &lt;command-line&gt;:0:0: warning: &quot;__GNUC__&quot; redefined &lt;built-in&gt;: note: this is the location of the...

27
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
23.02.2016, 10:10
Такой код соответствует новому стандарту С++.
Поставьте VS 2015.
Или, если хотите совместимости со старым стандартом, перепишите в соответствии с образцом
Образцы (шаблоны) программ для типовых задач
1
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 16
23.02.2016, 10:16  [ТС]
Все бы ничего, но прикол в том, что у меня не хочет компилировать код VS Enterprise 2015
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
23.02.2016, 10:21
Цитата Сообщение от zss Посмотреть сообщение
Такой код соответствует новому стандарту С++.
Нет.
Цитата Сообщение от Zashibable Посмотреть сообщение
Но MinGW компилит без вопросов и все работает.
Это нестандартное расширение компилятора, поэтому лучше так не делать. Для таких дел есть динамическое выделение памяти (через new).
2
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
23.02.2016, 12:33
Цитата Сообщение от nd2 Посмотреть сообщение
Это нестандартное расширение компилятора
Это называется variable-length array, из С99. В С++ официально не входит.

Добавлено через 51 секунду
Цитата Сообщение от Zashibable Посмотреть сообщение
Но MinGW компилит без вопросов и все работает.
добавь ключ -std=C++11 (версию стандарта установи по желанию)
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
23.02.2016, 12:40
Цитата Сообщение от Kastaneda Посмотреть сообщение
Это называется variable-length array, из С99. В С++ официально не входит.
Как это называется я знаю. Я что-то не так написал?
Цитата Сообщение от Kastaneda Посмотреть сообщение
добавь ключ -std=C++11
И перестанет работать, или что?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
23.02.2016, 12:42
Цитата Сообщение от nd2 Посмотреть сообщение
Я что-то не так написал?
все так, я просто уточнил для тех, кому подробности интересны.

Цитата Сообщение от nd2 Посмотреть сообщение
И перестанет работать, или что?
ага, перестанет компилироваться.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
23.02.2016, 12:47
Цитата Сообщение от Kastaneda Посмотреть сообщение
ага, перестанет компилироваться.
Разве?
Че-т мне кажется, что без -pedantic-errors максимум предупреждение будет.

Добавлено через 2 минуты
Найти и вывести на экран максимальный элемент массива, а также его порядковый номер
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
23.02.2016, 12:49
Цитата Сообщение от Croessmah Посмотреть сообщение
Че-т мне кажется
Так и есть.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
23.02.2016, 12:51
Цитата Сообщение от Croessmah Посмотреть сообщение
Разве?
по логике не должен, т.к. это не стандартная фича, если ключом -std обязать его следовать стандарту, то не должен компилировать. MinGW под рукой нет, не могу проверить, но в g++ (который линуксовый) все нестандартные расширения перестают компилироваться при использовании стандарта с++ (там есть еще -std=gnuXX, с ним компилирует).

Добавлено через 1 минуту
Croessmah, nd2, значит MinGW криво тут отрабатывает, может это документированная фича.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
23.02.2016, 12:53
Цитата Сообщение от Kastaneda Посмотреть сообщение
т.к. это не стандартная фича, если ключом -std обязать его следовать стандарту, то не должен компилировать.
Задаешь версию стандарта, но нестандартные расширения это не отрубает
По ссылке выше есть код, который даже при -std=c++14 и -pedantic-errors компилируется.
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
23.02.2016, 12:57
Кстати, одно время такие массивы действительно входили в С++14 (еще до официального завершения работы над ним). Называлось это "runtime-sized arrays", почитать можно тут: https://isocpp.org/files/papers/N3639.html
Одно время в GCC была реализована полная поддержка этой возможности, затем, когда ее исключили из черновика, она была убрана и из компилятора: https://gcc.gnu.org/projects/cxx1y.html (нижняя табличка).
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.02.2016, 13:00
Kastaneda, https://gcc.gnu.org/onlinedocs/gcc/Standards.html
to obtain all the diagnostics required by the standard, you should also specify -pedantic (or -pedantic-errors if you want them to be errors rather than warnings).
Добавлено через 1 минуту
Цитата Сообщение от DrOffset Посмотреть сообщение
входили в С++14 (еще до официального завершения работы над ним)
Так это был не C++14, а его черновик Совсем не одно и то же.
2
23.02.2016, 13:02

Не по теме:

Цитата Сообщение от DrOffset Посмотреть сообщение
Кстати, одно время такие массивы действительно входили в С++14 (еще до официального завершения работы над ним).
ага, только что это нагуглил. Похоже поэтому MinGW это компилирует.

0
23.02.2016, 13:03

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Совсем не одно и то же.
А фраза в скобках ни о чем не говорит тебе? :)
Лишь бы придраться :)

0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
23.02.2016, 13:05
Tulosba, думаю -pedantic нужен немного для другого, экстеншены должны выключаться при -std=c++XX.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.02.2016, 13:08

Не по теме:

Цитата Сообщение от DrOffset Посмотреть сообщение
Лишь бы придраться
Ничего не могу с собой поделать :) -pedantic :D



Добавлено через 1 минуту
Цитата Сообщение от Kastaneda Посмотреть сообщение
думаю -pedantic нужен немного для другого
А чего тут думать-то. Я же ссылку привел, там всё написано для чего и как Считай, оф.документация.
По логике вещей, так-то я бы с тобой согласился, но вот поведение gcc именно такое какое есть.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
23.02.2016, 13:09
Tulosba, да, я проверил, -pedantic нужен, чтоб vla отключить. Не знал.
0
23.02.2016, 13:09

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Ничего не могу с собой поделать
Однако тут ты не прав :)
В тексте видно, что речь идет о черновике. И само слово "черновик" тоже упоминается.

0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.02.2016, 13:30

Не по теме:

Цитата Сообщение от DrOffset Посмотреть сообщение
В тексте видно, что речь идет о черновике.
Но это же надо весь текст читать :) А вот если бы вместо:
входили в С++14
было бы:
входили в черновик С++14
уже -pedantic бы не выявил проблем.



Добавлено через 9 минут
Вот, кстати, интересно, написано, что:
By default, GCC also provides some additional extensions to the C++ language that on rare occasions conflict with the C++ standard. See Options Controlling C++ Dialect. Use of the -std options listed above disables these extensions where they they conflict with the C++ standard version selected.
А в каких конкретно случаях видна разница м/у опциями -std=c++14 и -std=gnu++14 (без дополнительных ключей) что-то не ясно сразу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2016, 13:30
Помогаю со студенческими работами здесь

Компилятор не хочет компилировать
Доброго дня. Начинаю изучать составные литералы в c++. Использую Microsoft Visual C++ 2010 Express. Ниже, собственно, код. Использую я...

Delphi не хочет компилировать(
Написал програму небольшую для ввода массива вручную и автоматически,максимальный,минимальный элемент и т/д.Вчера все работало а вот седня...

Ни в какую не хочет компилировать код
С помощью метода поиска в глубину найдите стягивающее дерево для произвольного связного неориентированного графа, заданного списками...

Eclipse не хочет компилировать приложение
Решил попытаться написать приложение под Андроид, eclipse не хочет компилировать подскажите плиз, что не так.

VS2015 не хочет компилировать, ругаеться
#include &lt;stdio.h&gt; #include &lt;Windows.h&gt; #define _CRT_SECURE_NO_WARNINGS main(void) { system(&quot;color f0&quot;); ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru