#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
void test (int a,int *b, int result[], int serie[]);
int main()
{
int *serie = malloc(sizeof(int));
int result[20], a,b, i;
a=0;
b=0;
for (i = 0; i < 20; i++) {
result[i]=i+10;
serie[i]=rand();
printf("result is %d \n",result[i]);
}
test(a,&b,result,serie);
printf("value of a inside main %d \n",a);
printf("value of b inside main %d \n",b);
for (i = 0; i < 20; i++) {
printf("value of result inside main is %d and of serie is %d \n",result[i],serie[i]);
}
getchar();
return 0;
}
void test(int a, int *b, int result[], int serie[]) {
int i;
a=13;
*b=14;
printf("value of a inside the function %d \n",a);
printf("value of b inside the function %d \n",*b);
for (i = 0; i < 20; i++) {
result[i]=result[i]*2;
serie[i]=7;
printf("value of result inside the function is %d and of serie is %d\n",result[i],serie[i]);
}
}
По сути, весь этот код видит область действия переменных, я написал это, чтобы помочь себе. Я подумал, как изменить значение целого числа внутри main
с помощью функции (см. int b
). Вы должны вызвать это с &b
(test(a,&b,result,serie);
) и затем внутри функции *b
. Так что я пробовал подобные операции & * с массивами, но они не работали.
Кажется, все, что вам нужно сделать, это написать массив void test(... int result[],int serie[])
и для вызова функции просто поставить имя без скобок: test(...,result,serie);
Я прав?
Что, если я хочу изменить только массивы внутри функции, как с переменной a
?