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

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

Войти
Регистрация
Восстановить пароль
 
Master05
1 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 124
#1

Передача массива - C++

18.10.2013, 23:26. Просмотров 281. Ответов 6
Метки нет (Все метки)

massiv.cpp

C++
1
2
3
4
5
6
7
8
int * peredacha()
{
    int mas[10][10];
    for (int i = 0; i < 10; i++)
            for (int j = 0; j < 10; j++)
                mas[i][j] = j;
        return *mas;
}
widget.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "widget.h"
#include "ui_widget.h"
#include "massiv.h"
#include <stdlib.h>
 
 massiv * arr1;
 int mas2[10][10];
 
 
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    arr1 = new massiv();
    memcpy( mas2, arr1->peredacha(), sizeof( int ) * 100 );
}
 
Widget::~Widget()
{
    delete ui;
}
Пишет, ошибка на неразрешенный внешний символ
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 23:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача массива (C++):

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

Передача массива - C++
Как передать массив(вектор) в класс class CZigzagLine { private: int value; public: int &amp;operator() (int...

Передача массива - C++
Нужна помощь. как передать массив созданный в функции в main()? int poisk(AEROFLOT *aeroflot,char *n) { int i,k; k=0; ...

С\С++ Передача в функцию 2 массива - C++
Всем доброго времени суток, при написание программы столкнулся с проблемой. void qs(int s_arr, int first, int last, int b) { ...

Передача массива в функцию - C++
Помогите разобраться как правильно вписать простейший массив вфункцию #include&lt;iostream&gt; #include&lt;windows.h&gt; #include&lt;ctime&gt; using...

Передача массива в функцию - C++
Доброе время суток! Товарищи профессионалы! Помогите, очень прошу! как передать в функцию массив a int frik (int aa) {return (1);}...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kniferko
35 / 35 / 1
Регистрация: 02.03.2012
Сообщений: 117
19.10.2013, 00:07 #2
Что такое maasiv? Где он описан?

Функция predacha возвращает указатель на локально инициализированный массив? Не очистятся ли данные по завершению функции?

Уж тогда лучше как-нибудь так:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void peredacha(int **ptr)
{
    for (int i = 0; i < 10; i++)
            for (int j = 0; j < 10; j++)
                ptr[i][j] = j;
}
 
...
 
mas[10][10]
 
...
 
peredacha(mas);
0
Master05
1 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 124
19.10.2013, 21:54  [ТС] #3
Цитата Сообщение от kniferko Посмотреть сообщение
Что такое maasiv? Где он описан?

Функция predacha возвращает указатель на локально инициализированный массив? Не очистятся ли данные по завершению функции?

Уж тогда лучше как-нибудь так:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void peredacha(int **ptr)
{
    for (int i = 0; i < 10; i++)
            for (int j = 0; j < 10; j++)
                ptr[i][j] = j;
}
 
...
 
mas[10][10]
 
...
 
peredacha(mas);
massiv.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef MASSIV_H
#define MASSIV_H
 
class massiv
{
public:
    int mas[10][10];
    massiv();
    int* peredacha(int mas[10][10]);
    
 
};
 
#endif // MASSIV_H
massiv.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "massiv.h"
 
massiv::massiv()
{
}
int* massiv::peredacha(int mas[10][10])
{
    
    for (int i = 0; i < 10; i++)
            for (int j = 0; j < 10; j++)
                mas[i][j] = j;
    return *mas;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "massiv.h"
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    int mas2[10][10];
    
    massiv * m = new massiv();
        
    memcpy(mas2, m->peredacha(m->mas), sizeof( int ) * 100 );
 
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
            cout << mas2[i][j] << "   ";
        cout << endl;   
    }
    cin.get();
    return 0;
}
В консоли все работает, а стоит перенести этот фрагмент в qt появляется ошибка, "ссылка на неразрешенный внешний символ" в функции peredacha..., поэтому я и создал тему в Qt
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.10.2013, 22:13 #4
Цитата Сообщение от Master05 Посмотреть сообщение
а стоит перенести этот фрагмент в qt появляется ошибка,
Значит что-то не так переносите.

Добавлено через 6 минут
Qt в какой среде делаете?
0
Master05
1 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 124
19.10.2013, 22:17  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Значит что-то не так переносите.

Добавлено через 6 минут
Qt в какой среде делаете?
QWidget
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.10.2013, 22:21 #6
Цитата Сообщение от Master05 Посмотреть сообщение
Qt Widget
Это что, среда такая? Компилируете в чём?
0
Master05
1 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 124
19.10.2013, 22:38  [ТС] #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Это что, среда такая? Компилируете в чём?
Все, я разобрался, нужно было новый создаваемый класс делать наследуемым от QObject
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2013, 22:38
Привет! Вот еще темы с ответами:

Передача массива в функцию - C++
Кто может объяснить как передать элемент структуры в функцию? допустим, я объявил структуру: struct one{ int nom; int mass; ...

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

Передача двумерного массива - C++
Искал по поиску , но так и не получилось у меня решить мою проблему с передачей динамического двумерного массива #include&lt;iostream&gt; ...

Передача массива в функцию - C++
Добрый день! Начал изучать C++ и столкнулся вот с какой проблемой. Я передаю массив в некоторую функцию. В конечном итоге передаваемый...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.10.2013, 22:38
Ответ Создать тему
Опции темы

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