<分区>
我是新来的,如果这篇文章编辑不当,我深表歉意。
我目前正在尝试使用 C 解决一些练习,将我最近学习的一些东西付诸实践,但是在使用指针时我不断遇到几个明显的错误,我无法通过我自己。
在这种情况下,我遇到了来自 Hackerrank 的挑战,我应该返回所有数组元素的总和,但我在第 12 行不断收到此编译错误:invalid type argument of unary '*' (有 'int')
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int simpleArraySum(int ar_size, int* ar) {
int sum = 0;
for (int i = 0; i < ar_size; i++){
sum += *ar[i]; //line 12
}
return sum;
}
int main() {
int n;
scanf("%i", &n);
int *ar = malloc(sizeof(int) * n);
for(int ar_i = 0; ar_i < n; ar_i++){
scanf("%i",&ar[ar_i]);
}
int result = simpleArraySum(n, ar);
printf("%d\n", result);
return 0;
}
我知道它涉及到指针的使用,但我不确定如何处理它。我试过使用 int *sum = malloc(sizeof(int));
和 *sum += *ar[i];
但同样的错误仍然存在。
有什么建议吗?