Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
#1

Передача массива Функции, ошибка - C++

09.10.2011, 18:38. Просмотров 1627. Ответов 12
Метки нет (Все метки)

VS 2010 ругаеться ( Код из книги Дейтлов
Что не так ? Как можно по другому подскажите пожалуйста
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
#include <iostream>
#include <iomanip>
using namespace std;
 
void modArr(int [],int);
int main()
{
        locale::global(locale("rus"));
        const int arrS = 5;
        int A[arrS] = {0,1,2,3,4};
        cout << "По ссылке" << endl;
        cout << "Оригинальные значения" << endl;
        for(int i = 0 ; i < arrS; i++)
            cout << setw(3) << A[i] << endl;
        modArr(A,arrS);
        cout << "Модифицированные изменения" << endl;
        for(int j=0;j>arrS;j++)
            cout << setw(3) << A[j] << endl;
        
 
        system("PAUSE");
        return 0;
}
void modArr[int b[], int sizeOfArr)
{
    for(int k=0;k<arrS;k++)
        b[k] *=2;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 18:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача массива Функции, ошибка (C++):

Передача массива из функции - C++
Всем привет! Только начал изучать С++ и вот столкнулся с проблемой, как вывести массив символов из функции через return. В коде я вывожу...

Передача массива функции - C++
Привет. Хочу передать функции массив в качестве аргумента но не знаю как это сделать. Какой есть способ? Код: void randoming(int...

Передача динамического массива в функции - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; /*const*/ int k=3; //void sum (int mas); void sum (int * arr, int...

Передача массива в функцию и из функции - C++
Здравствуйте, у меня простая задача, я ее решила, но вот с передачей данных от функций к main, какая то ошибка, помогите пожалуйста, с...

Передача массива вызывающей функции - C++
Как можно передать массив целиком в вызывающую функцию? И можно ли сделать так: есть целочисленный массив,в котором находится N...

Передача массива объектов функции - C++
Выбивает о каком-то недопустимом внешнем символе, подскажите что не так. Вот цикл, который прогоняет массив. user = new Students; ...

12
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 18:46 #2
C++
1
void modArr[int b[], int sizeOfArr)
Присмотритесь.
0
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 18:49  [ТС] #3
Ох точно, в книге это пропустили) Но всё равно ругается ещё
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 18:54 #4
У вас функция без понятия, что такое arrS, и с чем его есть. Либо передавайте в функцию и эту переменную, либо выносите за конструкцию int main(), делая тем самым arrS глобальной константой.

Добавлено через 3 минуты
Проглядел, извиняюсь, вы уже передали arrS в функцию, осталось в самой функции заменить arrS на sizeOfArr
1
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 19:17  [ТС] #5
Всё равно ругаеться
1>Learn2.cpp(27): error C2144: синтаксическая ошибка: перед "int" требуется "]"
1>Learn2.cpp(27): error C2144: синтаксическая ошибка: перед "int" требуется ";"
1>Learn2.cpp(27): error C2182: modArr: недопустимое использование типа "void"
1>Learn2.cpp(27): error C2365: modArr: переопределение; предыдущим определением было "функция"
1> Learn2.cpp(6): см. объявление "modArr"
1>Learn2.cpp(27): error C2062: тип "int" не требуется
1>Learn2.cpp(27): error C2059: синтаксическая ошибка: )
1>Learn2.cpp(28): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>Learn2.cpp(28): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
0
Сыроежка
Заблокирован
09.10.2011, 19:21 #6
Цитата Сообщение от TBIKC Посмотреть сообщение
Всё равно ругаеться
1>Learn2.cpp(27): error C2144: синтаксическая ошибка: перед "int" требуется "]"
1>Learn2.cpp(27): error C2144: синтаксическая ошибка: перед "int" требуется ";"
1>Learn2.cpp(27): error C2182: modArr: недопустимое использование типа "void"
1>Learn2.cpp(27): error C2365: modArr: переопределение; предыдущим определением было "функция"
1> Learn2.cpp(6): см. объявление "modArr"
1>Learn2.cpp(27): error C2062: тип "int" не требуется
1>Learn2.cpp(27): error C2059: синтаксическая ошибка: )
1>Learn2.cpp(28): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>Learn2.cpp(28): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
Приведите окончательный вариант, который вы компилировали.
0
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 19:22  [ТС] #7
Цитата Сообщение от Сыроежка Посмотреть сообщение
Приведите окончательный вариант, который вы компилировали.
В 1 посте ... он же
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 19:41 #8
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 <iomanip>
using namespace std;
 
void modArr(int [],int);
 
int main()
{
    locale::global(locale("rus"));
    const int arrS = 5;
    int A[arrS] = {0,1,2,3,4};
    cout << "По ссылке" << endl;
    cout << "Оригинальные значения" << endl;
    for(int i = 0 ; i < arrS; i++)
    cout << setw(3) << A[i] << endl;
    modArr(A,arrS);
        cout << "Модифицированные изменения" << endl;
    for(int j=0;j<arrS;j++)
        cout << setw(3) << A[j] << endl;
 
    system("PAUSE");
    return 0;
}
 
void modArr(int b[], int sizeOfArr)
{
    for(int k=0;k<sizeOfArr;k++)
        b[k] *=2;
}
Этот компилируется. Исправил все ошибки, о которых говорили в предыдущих постах. И еще изменил цикл в строке 18. Ваш цикл даже не запустился бы.
1
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 19:55  [ТС] #9
Небыло там никаких ошибок с прототипом функции и передачей
Просто в описании функции вместо "(" написал "["
А цикл действительно с условием ">" не сработал бы
0
Alecs12
1 / 1 / 0
Регистрация: 21.03.2011
Сообщений: 23
09.10.2011, 20:02 #10
Цитата Сообщение от TBIKC Посмотреть сообщение
Всё равно ругаеться
1>Learn2.cpp(27): error C2144: синтаксическая ошибка: перед "int" требуется "]"
1>Learn2.cpp(27): error C2144: синтаксическая ошибка: перед "int" требуется ";"
1>Learn2.cpp(27): error C2182: modArr: недопустимое использование типа "void"
1>Learn2.cpp(27): error C2365: modArr: переопределение; предыдущим определением было "функция"
1> Learn2.cpp(6): см. объявление "modArr"
1>Learn2.cpp(27): error C2062: тип "int" не требуется
1>Learn2.cpp(27): error C2059: синтаксическая ошибка: )
1>Learn2.cpp(28): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>Learn2.cpp(28): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
Ну с ходу ж видно - void modArr[int b[], int sizeOfArr)

Выглядеть должна она как

void modArr(int b[], int sizeOfArr)
{
for(int k=0;k<sizeOfArr;k++)
b[k] *=2;
}

И во втором форе перепутал меньше с больше
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 20:06 #11
Небыло там никаких ошибок с прототипом функции и передачей
Про это вообще речи не было, разве нет?
Alecs12, как бы об этом и шла речь с поста #2 по #4.
0
Alecs12
1 / 1 / 0
Регистрация: 21.03.2011
Сообщений: 23
09.10.2011, 20:16 #12
Цитата Сообщение от soon Посмотреть сообщение
Про это вообще речи не было, разве нет?
Alecs12, как бы об этом и шла речь с поста #2 по #4.
та да =) но ТС все равно написал, что код тот же, вверху, и ошибки все те же показал. И все равно я поздно написал =)
1
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 20:20 #13
Ну, ловите плюсик за трудолюбие .
Предлагаю больше не оффтопить.
0
09.10.2011, 20:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2011, 20:20
Привет! Вот еще темы с ответами:

Передача двухмерного массива функции - C++
Подскажите пожалуйста как передать статический массив array в функцию fn(), т.е. #include &lt;iostream&gt; using namespace std; void...

Передача двумерного массива в функции - C++
Здравствуйте. В c++ недавно. Компилятор ругается. Как правильно передать двумерный массив в функции? И вообще, какие замечания по коду? ...

Передача двумерного массива в функции - C++
Мне нужно передать массив в функцию, а затем из этой функции в другую функцию. Вот код: #define _CRT_SECURE_NO_WARNINGS #define...

Передача массива структур в функции - C++
Написал лабораторную работу, программа свои функции выполняет, но мне кажется, что можно что-то наколдовать с памятью. Подскажите, как...


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

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

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