Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++ Матчасть

58K
14 мая 2010 года
huntex
4 / / 14.05.2010
Всем привет! У меня есть пару вопросов по С++. ПИШУ НА Visual Studio 2010:

1. Почему не заполняется массив:

 
Код:
char arr[5];
for(int i=0;i==4;i++) arr = 123;


Внутри тупо мусор, вероятно оставшийся от другой программы.

2. Следующий вопрос. Как можно по-другому увеличить размер массива? Если нельзя, то как скопировать его в новый массив ... у меня получается так:

 
Код:
char arr[5];

for(int i=0;i==4;i++) arr = 123; // опять же незаполняется массив (((

char new_array[sizeof(arr)+1];
memcpy(new_array, arr, sizeof(arr)); // но массив не копируется! Да и чему там копироваться ... (((


Как я понимаю, в С++ необходимо заранее задавать требуемую длину для массивов, потому что при указании длины массива аргумент должен быть константой.

p.s. сам пишу на C#, после него С++ кажется нереально тяжелым (
Пожалуйста подскажите!!! :confused:
87
14 мая 2010 года
Kogrom
2.7K / / 02.02.2008
1. i==4 - сразу false. Ну и предвижу, что с выводом char будут вопросы.
2. смотри vector из STL.
58K
14 мая 2010 года
huntex
4 / / 14.05.2010
Цитата: Kogrom
1. i==4 - сразу false. Ну и предвижу, что с выводом char будут вопросы.
2. смотри vector из STL.



ФАК! Вот я ступил ))))))))))))))))))))
Да, кстати, а что там с выводом char?

58K
14 мая 2010 года
huntex
4 / / 14.05.2010
Да, кстати почему не вызываются функции?

 
Код:
int vl = getValue(5);

int getValue(int value)
{
    return value;
}


Ругается что
 
Код:
error C3861: 'getValue': identifier not found


И как поменять размер массива в С++?

в C# это просто:
 
Код:
int[] arr = new int[10];
87
14 мая 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: huntex
Да, кстати почему не вызываются функции?



Собираешься с помощью вопросов на форуме постигнуть все азы C++? Почитай лучше учебник какой-нибудь, посмотри примеры программирования.

376
14 мая 2010 года
Absolut
220 / / 22.11.2002
Цитата: huntex
Да, кстати почему не вызываются функции?

 
Код:
int vl = getValue(5);

int getValue(int value)
{
    return value;
}


Ругается что
 
Код:
error C3861: 'getValue': identifier not found


И как поменять размер массива в С++?

в C# это просто:
 
Код:
int[] arr = new int[10];



Функция не вызывается потому что на момент вызова о ее существовании ещё неизвестно. Либо определи функцию до вызова, либо объяви прототип в начале.

Хочешь менять размер массива - используй std::vector. Для обычных массивов размер задается на стадии компиляции. Ну или выделяй память сам через вызов new.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог