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

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

Восстановить пароль Регистрация
 
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 02:11     работа между функциями #1
в функции func_1 я вычислил массив p1. Как мне использовать данные этого массива в другой функции?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
05.02.2012, 02:29     работа между функциями #2
передать в эту функцию. ваш кэп.

а вообще больше информации дай. откуда вызывается вторая функция, откуда массив берется в первой функции.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
05.02.2012, 03:07     работа между функциями #5
Цитата Сообщение от Сидоренко Посмотреть сообщение
что мне исправить?
Цитата Сообщение от Сидоренко Посмотреть сообщение
в цыкле
через "и" пишется.
А если серьёзно - как должны функции с массивом работать? Он глобальным объявлен? Плохой стиль.
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,979
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     работа между функциями
Ответ Создать тему
Опции темы

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