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

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

Войти
Регистрация
Восстановить пароль
 
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
#1

работа между функциями - C++

05.02.2012, 02:11. Просмотров 403. Ответов 5
Метки нет (Все метки)

в функции func_1 я вычислил массив p1. Как мне использовать данные этого массива в другой функции?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2012, 02:11     работа между функциями
Посмотрите здесь:

C++ Работа с функциями
C++ Работа с функциями
работа с функциями в С++ !! C++
В чём разница между процедурами и функциями ? C++
C++ Переход между функциями
Передача свойств объектов между функциями C++
C++ В чем разница между функциями strcat() и strcpy()?
C++ В чем разница между функциями, прототипы которых имеют вид?
Почему изменяется значение переменной между функциями класса? C++
Сбиваются указатели при переходе между функциями C++
Разница между функциями atan и atan2 C++
C++ Функции: связь между функциями

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
05.02.2012, 02:29     работа между функциями #2
передать в эту функцию. ваш кэп.

а вообще больше информации дай. откуда вызывается вторая функция, откуда массив берется в первой функции.
easybudda
Эксперт С++
9454 / 5467 / 926
Регистрация: 25.07.2009
Сообщений: 10,490
05.02.2012, 02:34     работа между функциями #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Сидоренко, из func_1 передать в вызывающую программу указатель на массив, который можно будет передать в func_2
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
#include <stdio.h>
#include <stdlib.h>
 
int * func_1(size_t count){
    return (int*)malloc(sizeof(int) * count);
}
 
void func_2(int * arr, size_t count){
    while ( count-- )
        printf("%d%c", *arr++, ( count ) ? ' ' : '\n');
}
 
int main(void){
    int * arr;
    size_t i, count = 10;
 
    if ( ( arr = func_1(count) ) == NULL )
        return 1;
    for ( i = 0; i < count; ++i )
        arr[i] = i + 1;
    func_2(arr, count);
 
    free(arr);
    return 0;
}
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 02:55  [ТС]     работа между функциями #4
в первой функции нужные числа мы сохранили в массив p1. Во второй функции нужно эти числа ( что в массиве p1) возвести в квадрат и сохранить в массиве p2. Ну а главная функция должна просто вызывать их.

Добавлено через 19 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int MASP1(N){
// идут всякие вычисления. Находим P1[i].
getch();
return 0;
}
 
int MASP1(){
//Тут в цыкле пытаюсь вывести P1, но все зря. Что делать??? 
getch();
return 0;
}
int main(){
MASP1();
getch();
MASP2();
return 0;
}
Где и что мне исправить??
easybudda
Эксперт С++
9454 / 5467 / 926
Регистрация: 25.07.2009
Сообщений: 10,490
05.02.2012, 03:07     работа между функциями #5
Цитата Сообщение от Сидоренко Посмотреть сообщение
что мне исправить?
Цитата Сообщение от Сидоренко Посмотреть сообщение
в цыкле
через "и" пишется.
А если серьёзно - как должны функции с массивом работать? Он глобальным объявлен? Плохой стиль.
Байт
Эксперт C
15550 / 9892 / 1487
Регистрация: 24.12.2010
Сообщений: 18,498
05.02.2012, 10:59     работа между функциями #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int *MASP1(int N)
{
  int *p1 = malloc(N*sizeof(int));
  ...
  return(p1);
}
MASP2(int *p, int N)
{ for(i=0; i<N; i++) p[i] *= p[i]; }
main()
{ int *pp;
    pp = MASP1(20);
    MASP2(pp, 20);
    free(pp);
}
Yandex
Объявления
05.02.2012, 10:59     работа между функциями
Ответ Создать тему
Опции темы

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