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

Работа со строками - C++

Восстановить пароль Регистрация
 
AugenLos
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 19
05.12.2015, 12:10     Работа со строками #1
C++
1
char* stringRes=new char[length];
Почему эта строка работает правильно и не выдает ошибки, хотя переменная length не константа? Почему тут не как с массивами, где только константы? Или это из-за оператора new?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2015, 12:10     Работа со строками
Посмотрите здесь:

C++ Работа со строками
работа со строками C++
C++ Работа со строками
C++ работа со строками
Работа со строками C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Не Эксперт C++
1473 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,523
Записей в блоге: 1
Завершенные тесты: 2
05.12.2015, 12:22     Работа со строками #2
AugenLos, Я открою вам тайну.
C++
1
2
3
int n; // ne const
cin >> n;
int arr[n];
Вот такая запись уместна.
Dastan4ik
60 / 60 / 31
Регистрация: 18.10.2014
Сообщений: 185
Завершенные тесты: 2
05.12.2015, 12:26     Работа со строками #3
Чтоооо?
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
05.12.2015, 12:32     Работа со строками #4
Цитата Сообщение от makfak Посмотреть сообщение
Вот такая запись уместна.
смотря какой компилятор
-L
15 / 9 / 10
Регистрация: 03.12.2015
Сообщений: 79
05.12.2015, 12:33     Работа со строками #5
Надо Страуструпу написать про этот "баг"...

AugenLos, почитайте про динамические и статические массивы и в чём между ними отличие
Миниатюры
Работа со строками  
GbaLog-
Не Эксперт C++
1473 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,523
Записей в блоге: 1
Завершенные тесты: 2
05.12.2015, 12:34     Работа со строками #6
Dimension, Сужу по Dev-C++, C::B, QtCreator'y.
-L
15 / 9 / 10
Регистрация: 03.12.2015
Сообщений: 79
05.12.2015, 12:36     Работа со строками #7
makfak, это где такое компилится?

вопрос снят
AugenLos
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 19
05.12.2015, 12:37  [ТС]     Работа со строками #8
makfak, такое у меня не работает
GbaLog-
Не Эксперт C++
1473 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,523
Записей в блоге: 1
Завершенные тесты: 2
05.12.2015, 12:37     Работа со строками #9
-L, Я же написал, выше читайте.
AugenLos
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 19
05.12.2015, 12:39  [ТС]     Работа со строками #10
-L, Я и не говорю, что это баг. Просто задали вопрос почему такая строка вообще запускается, а не выдает ошибку. Работает и работает

Добавлено через 1 минуту
То что это динамический массив (строка) тоже считается "неправильным" ответом. Поэтому я и не знаю, как еще это объяснить. Возможно как-то потому что там оператор new, но опять же это как и первый ответ.
GbaLog-
Не Эксперт C++
1473 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,523
Записей в блоге: 1
Завершенные тесты: 2
05.12.2015, 12:44     Работа со строками #11
AugenLos, Какой у вас компилятор?
-L, Только что в QtCreator'e вот этот код проверил, всё скомпилилось.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main() {
    int n = 10;
    int arr[n];
    getch();
    return 0;
}
Добавлено через 2 минуты
C++
1
int* arr = new int[n];
Тоже всё скомпилилось.
-L
15 / 9 / 10
Регистрация: 03.12.2015
Сообщений: 79
05.12.2015, 12:49     Работа со строками #12
makfak,

я не большой специалист, но у меня вот что в креаторе. Я ничем кроме vs не пользуюсь обычно, поэтому очень удивился
Миниатюры
Работа со строками  
AugenLos
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 19
05.12.2015, 12:50  [ТС]     Работа со строками #13
makfak, компилятор в составе VS2012, второе тоже работает, а первое нет
GbaLog-
Не Эксперт C++
1473 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,523
Записей в блоге: 1
Завершенные тесты: 2
05.12.2015, 12:53     Работа со строками #14
-L, Я создаю проект без использования Qt, и какой у вас компилятор там?
nmcf
4299 / 3720 / 1253
Регистрация: 14.04.2014
Сообщений: 14,551
05.12.2015, 13:02     Работа со строками #15
Visual C++ не поддерживает указание размера массива не константой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2015, 19:33     Работа со строками
Еще ссылки по теме:

C++ Работа со строками
Работа со строками C++
Работа с строками C++

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

Или воспользуйтесь поиском по форуму:
-L
15 / 9 / 10
Регистрация: 03.12.2015
Сообщений: 79
05.12.2015, 19:33     Работа со строками #16
makfak, ну да. Вы правы. У меня ничего не собирается, потому что везде один и тот же компилятор VC++. А у вас видимо MinGW. Спасибо за ликбез, буду знать
Yandex
Объявления
05.12.2015, 19:33     Работа со строками
Ответ Создать тему
Опции темы

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