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

Передать двумерный массив функции - C++

Восстановить пароль Регистрация
 
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51
22.11.2013, 23:13     Передать двумерный массив функции #1
Скажите, пожалуйста, как я могу передать двумерный массив функции, которая с ним поработает, а потом вернет мне его?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int FirstTeamResult(int sizeOfMyArray,  int game[sizeOfMyArray][sizeOfMyArray], string firstLine) {
    int i,j=0;
    int check=0;
    int index;
    for (i=0; i<firstLine.length(); i++){
        if (firstLine[i] == ' ' && check>1) {
            check++;
            if (i!=index && check>1) {
                game[0][j] = stoi(firstLine.substr(index,i));
                index=i;
                j++;
            }
        }
    }
    return game[sizeOfMyArray][sizeOfMyArray];
}
Делаю так, а он мне ошибку
C++
1
2
3
4
5
Undefined symbols for architecture x86_64:
  "FirstTeamResult(int, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
22.11.2013, 23:32     Передать двумерный массив функции #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Передавай не массив, а указатель на массив.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int FirstTeamResult(int sizeOfMyArray,  int** game[sizeOfMyArray][sizeOfMyArray], string firstLine) {
    int i,j=0;
    int check=0;
    int index;
    for (i=0; i<firstLine.length(); i++){
        if (firstLine[i] == ' ' && check>1) {
            check++;
            if (i!=index && check>1) {
                game[0][j] = stoi(firstLine.substr(index,i));
                index=i;
                j++;
            }
        }
    }
}
Добавлено через 2 минуты
И, насколько я знаю, return не может возвращать массивы.
reidaigo
6 / 6 / 0
Регистрация: 16.12.2012
Сообщений: 31
22.11.2013, 23:46     Передать двумерный массив функции #3
NikitaQ, тип возвращаемого значения у Вас отмечен как INT. В то же время вы пытаетесь вернуть значение типа CHAR в строке "return game[sizeOfMyArray][sizeOfMyArray];", так как в С++ вы указываете на первый элемент массива, а не массив в целом.
koldya
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 26
22.11.2013, 23:47     Передать двумерный массив функции #4
Функция не вернет тебе массив, по той причине что работает с массивом на прямую не создавая копий.
Abram_TA
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 9
22.11.2013, 23:47     Передать двумерный массив функции #5
Функция не должна возвращать массив, так как при передаче массива фактически ты передаешь адрес для работы с ним. А также в списке параметров функции(там где ты пишешь что она принимает),размер двухмерного массива в первой можно и не указывать, а во второй обязательно.
Yandex
Объявления
22.11.2013, 23:47     Передать двумерный массив функции
Ответ Создать тему
Опции темы

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