char arr[5];
for(int i=0;i==4;i++) arr = 123;
C++ Матчасть
1. Почему не заполняется массив:
Код:
Внутри тупо мусор, вероятно оставшийся от другой программы.
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)); // но массив не копируется! Да и чему там копироваться ... (((
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:
2. смотри vector из STL.
Цитата: Kogrom
1. i==4 - сразу false. Ну и предвижу, что с выводом char будут вопросы.
2. смотри vector из STL.
2. смотри vector из STL.
ФАК! Вот я ступил ))))))))))))))))))))
Да, кстати, а что там с выводом char?
Код:
int vl = getValue(5);
int getValue(int value)
{
return value;
}
int getValue(int value)
{
return value;
}
Ругается что
Код:
error C3861: 'getValue': identifier not found
И как поменять размер массива в С++?
в C# это просто:
Код:
int[] arr = new int[10];
Цитата: huntex
Да, кстати почему не вызываются функции?
Собираешься с помощью вопросов на форуме постигнуть все азы C++? Почитай лучше учебник какой-нибудь, посмотри примеры программирования.
Цитата: huntex
Да, кстати почему не вызываются функции?
Ругается что
И как поменять размер массива в С++?
в C# это просто:
Код:
int vl = getValue(5);
int getValue(int value)
{
return value;
}
int getValue(int value)
{
return value;
}
Ругается что
Код:
error C3861: 'getValue': identifier not found
И как поменять размер массива в С++?
в C# это просто:
Код:
int[] arr = new int[10];
Функция не вызывается потому что на момент вызова о ее существовании ещё неизвестно. Либо определи функцию до вызова, либо объяви прототип в начале.
Хочешь менять размер массива - используй std::vector. Для обычных массивов размер задается на стадии компиляции. Ну или выделяй память сам через вызов new.