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

Как в функции создать два массива и передать их в другую функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с ифом http://www.cyberforum.ru/cpp-beginners/thread934804.html
Здравствуйте! Не компилируется, помогите! Конечно, смешно звучит, но мне действительно нужна помощь в поиске ошибки :) , т.к. сам не в состоянии разобраться, к сожалению. Вот кусочек кода. ~Просим ввести пол друга. Если ввести m, то мужской и соответственное сообщение, если f, то женский и сообщение. Мне казалось, я все правильно написал, но компилятор почему-то ругается. Кто заметил ошибку,...
C++ Ввод и вывод в файл Данные вводимые в 11-ой строке стираются в 13-ой? #include "stdafx.h" #include <fstream> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { char fileName; char buffer ; http://www.cyberforum.ru/cpp-beginners/thread934793.html
Номер издания книги Дейтлов C++
Доброго времени суток! Столкнулся с проблемой, которая сломала мне мозг. Занимался по Дейтлам "Как программировать на С++". У меня есть электронный сканированный вариант. В нем 18 глав + приложения. Хочу купить эти книгу в обычном виде :), но не могу определить, какое у меня издание. В интернете этот файл распространен как 3-5 издания. Могу сказать точно, что это не 5-е. В 3-м издании...
gcc компиляция C++
Проблема возникла при компиляции проекта code::block. При build and run все работает, в папке bin проекта появляется .exe Но запустить его не выходит, нет библиотеки libgcc_s..... Слышал, чтобы этого не было нужно было прописать атрибут -static при компиляции, но это в консоли, а у меня IDE. Как исправить?
C++ Не работает getline() http://www.cyberforum.ru/cpp-beginners/thread934762.html
У меня есть класс, в котором в функции printPaste считывается строка пользователем. При вызове этой функции после ввода переменной position компилятор игнорирует getline(cin, NewString); UserStr.insert (position, NewString) ; и сразу начинает выводить строку. Если это заменить оператором, cin >> NewString ; то строка считывается, но без пробелов, а мне нужно с пробелами. Объясните в...
C++ с++ для очень начинающих ребят, очень хочу писать на с++, нашла книгу, учусь, но для написания первой программы мне нужен ms dos. Знаю, что он идет как операционная система. В общем у меня 2 вопроса 1. Как нормально установить мс дос? 2. Что в целом из себя он представляет и как его можно использовать? подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,730
Записей в блоге: 3
08.08.2013, 12:28     Как в функции создать два массива и передать их в другую функцию
Maxak, да, если указатель не указывает на выделенную память, а используется для выделения, то нужно его передать по указателю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#include <iostream>
using namespace std;
 int Func(int ** A)
{
    *A = new int[2];
    (*A)[0] =1; (*A)[1]=2;
return 2;
}
 
int main()
{
    int *AA=0;
    int jjj=Func(&AA);
    cout<<" A[] = " << AA[0]<<" ; "<< AA[1];
    delete [] AA;
     cout<<endl;
    cin.get();
    return 0;
}
Но гораздо лучше сначала получить размер, а потом выделить и инициализировать:
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 <iostream>
using namespace std;
int FuncRetSize(/* всё что ей нужно */)
{
 //как то выяснятся что 2 например   
return 2;
}
void FuncFillArr(double *AA, int n)
{
    for( int i = 0 ; i < n ;  ++i ) AA [i]  = i + 1;
return ;
} 
int main()
{
     int jjj=FuncRetSize();
    double *AA = new double[jjj];//
FuncFillArr(AA, jjj);
    cout<<" A[] = " << AA[0]<<" ; "<< AA[1];
    delete [] AA;//
     cout<<endl;
    cin.get();
    return 0;
}
тогда просто указатель можно.
 
Текущее время: 07:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru