我的问题是我的整数数组的值在传递给函数时会发生变化calculate。索引 0 和 2->5 的值是正确的。
出于某种原因,索引 1 和 6+ 不是正确的值。
下面是我的代码。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int* generate_rand (int length, int MAX_ARRAY);
void calculate (int *array_ptr, int length, int *mean, int *sd);
main() {
srand(time(NULL));
int a;
printf("\nArray length?: ");
scanf("%d", &a);
int* array_ptr2;
array_ptr2 = generate_rand(a, 100);
//int mean, sd;
int* *mean;
int* *sd;
int i = 0;
for (i = 0; i < 10; i++) {
printf("Array2: %d\n", *(array_ptr2 + i));
}
calculate(array_ptr2, a, *mean, *sd);
//printf("Mean: %d\n", (int)*mean);
}
int* generate_rand (int length, int MAX_ARRAY) {
int arr[length];
int i;
for (i = 0; i < 10; i++) {
int r = rand()%MAX_ARRAY;
arr[i] = r;
printf("Rand: %d\n", arr[i]);
}
int *arrPtr;
arrPtr = &arr[0];
return arrPtr;
}
void calculate (int *array_ptr, int length, int *mean, int *sd) {
int sum;
int i;
for (i = 0; i < length; i++) {
printf("Array: %d\n", *(array_ptr + i));
sum += *(array_ptr + i);
//array_ptr++;
printf("Sum: %d, i:%d\n", sum, i);
}
//*mean = sum / length;
}
你知道我做错了什么吗?