c - C:在将具有数组的指针传递给函数时,会出现运行时错误。为什么?
问题描述
int add_up (int *a, int num_elements);
int main()
{
int orders[5] = {100, 220, 37, 16, 98};
int *p;
p=&orders[0];
printf("Total orders is %d\n", add_up(*p, 5));
这里如果我通过指针有什么问题?因为指针将指向否。100 的价值。因为 100 是一个 int 值,它将转到 int *a。程序应该很顺利吧?编辑 1:如果我在这里给 p 代替 *p 那么它会是 orders[0] 的地址而不是值 100 吗?但是函数 int *a 想要正确的值 100。如果我在这个概念上错了,请纠正我,谢谢。
return 0;
}
int add_up (int *a, int num_elements)
{
int total = 0;
int k;
for (k = 0; k < num_elements; k++)
{
total += a[k];
}
return (total);
}
解决方案
用以下代码替换您的代码:
#include <stdio.h>
#include <stdlib.h>
int add_up (int *a, int num_elements);
int main()
{
int orders[5] = {100, 220, 37, 16, 98};
int *p;
p=&orders[0];
printf("Total orders is %d\n", add_up(p, 5));
return 0;
}
int add_up (int *a, int num_elements)
{
int total = 0;
int k;
for (k = 0; k < num_elements; k++)
{
total += a[k];
}
return (total);
}
您忘记包含 2 个标题add_up(*p, 5)
并删除*
.
推荐阅读
- flutter - 即使位置是静态的(颤振),位置 onChange 函数也会不断被调用
- python - Python:将固定数组乘以元素方式的第二个数组
- python - kivy在后台运行功能
- javascript - 用d3+react画一条路径(折线图)
- html - 我正在尝试在垂直 flex div 中并排制作按钮
- angular - 在迭代表角度 8 中显示复选框的值
- ios - 如何从呈现的 ViewController 推送?
- vba - VBA项目创建子程序
- google-cloud-functions - Google Cloud Functions REST API,functions.patch 错误:必须为函数指定一个触发器
- python - 如何将缩放的分类数据添加回原始数据集?