我的输出有个有趣的字符(ΦwcrazyΩw),我能知道代码出了什么问题吗?可能int main是错误的我必须使用int sumArray(int * a,int len,int * sum)format
#include <stdio.h>
#include <stdlib.h>
int sumArray(int *a, int len, int *sum) {
int sum1 = 0;
if (a == NULL || sum == NULL)
return -1;
int i;
(*sum) = 0;
for (i = 0; i < len; i++) {
(*sum) += a[i];
}
return 0;
}
int main() {
int *a = {1, 2, 3, 4};
int *b;
sumArray(&a, 4, &b);
printf(b);
return 0;
}
您可以尝试这些更改吗?
#include <stdio.h>
#include <stdlib.h>
int sumArray(int *a, int len, int *sum) {
// int sum1 = 0; // i removed this variable because you are not using it
if (a == NULL || sum == NULL)
return -1;
int i;
(*sum) = 0;
for (i = 0; i < len; i++) {
(*sum) += a[i];
}
return 0;
}
int main() {
//int *a = {1, 2, 3, 4};
int a[] = {1,2,3,4};
int b;
//i rather declare an integer instead of a pointer to an integer
// when you declared int * b , this was a pointer, and your printf(b) was printing an address, not the value calculated by sumArray
// that is why you were printing funny characters
sumArray(a, 4, &b);
//a is already a pointer
printf("%d",b);
return 0;
}