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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
TBIKC
web dev
 Аватар для TBIKC
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 18:38     Передача массива Функции, ошибка #1
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 18:46     Передача массива Функции, ошибка #2
C++
1
void modArr[int b[], int sizeOfArr)
Присмотритесь.
TBIKC
web dev
 Аватар для TBIKC
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 18:49  [ТС]     Передача массива Функции, ошибка #3
Ох точно, в книге это пропустили) Но всё равно ругается ещё
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 18:54     Передача массива Функции, ошибка #4
У вас функция без понятия, что такое arrS, и с чем его есть. Либо передавайте в функцию и эту переменную, либо выносите за конструкцию int main(), делая тем самым arrS глобальной константой.

Добавлено через 3 минуты
Проглядел, извиняюсь, вы уже передали arrS в функцию, осталось в самой функции заменить arrS на sizeOfArr
TBIKC
web dev
 Аватар для TBIKC
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: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
Сыроежка
Заблокирован
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: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
Приведите окончательный вариант, который вы компилировали.
TBIKC
web dev
 Аватар для TBIKC
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 19:22  [ТС]     Передача массива Функции, ошибка #7
Цитата Сообщение от Сыроежка Посмотреть сообщение
Приведите окончательный вариант, который вы компилировали.
В 1 посте ... он же
soon
 Аватар для soon
2536 / 1301 / 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. Ваш цикл даже не запустился бы.
TBIKC
web dev
 Аватар для TBIKC
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
09.10.2011, 19:55  [ТС]     Передача массива Функции, ошибка #9
Небыло там никаких ошибок с прототипом функции и передачей
Просто в описании функции вместо "(" написал "["
А цикл действительно с условием ">" не сработал бы
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;
}

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

C++ Передача двухмерного массива функции
C++ Передача массива структур в функции
Передача в функции массивов типа char - ошибка C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.10.2011, 20:20     Передача массива Функции, ошибка #13
Ну, ловите плюсик за трудолюбие .
Предлагаю больше не оффтопить.
Yandex
Объявления
09.10.2011, 20:20     Передача массива Функции, ошибка
Ответ Создать тему
Опции темы

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