c - 未能在 main 中测试函数
问题描述
我尝试测试我的 GradeStat 函数,但在突出显示的行中它在 main 中失败:printf("%d", c[0]);
.. 它给了我错误:segmentation fault
但我不知道为什么..
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int** GradeStat(int* Grades, int size_grades, int grd_range, int* count_grd, int* avg_grd) {
const int len = 100/grd_range+1;
int** collector = malloc(len * sizeof(int*));
count_grd = calloc(len, sizeof(int));
avg_grd = calloc(len, sizeof(int));
size_t i;
for(i=0; i<size_grades; i++)
count_grd[Grades[i]/grd_range]++;
for(i=0; i<len; i++) {
if (count_grd[i] == 0)
collector[i] = NULL;
else
collector[i] = malloc(count_grd[i] * sizeof(int));
}
int** temp = malloc(len * sizeof(int*));
for(i=0; i<len; i++) {
temp[i] = collector[i];
}
for(i=0; i<size_grades; i++) {
*(collector[Grades[i]/grd_range]++) = Grades[i];
avg_grd[Grades[i]/grd_range] += Grades[i]/count_grd[Grades[i]/grd_range];
}
for(i=0; i<len; i++) {
collector[i] = temp[i];
}
free(temp);
return collector;
}
int main() {
int** arr;
int grd[8] = {10, 43, 46, 49, 80, 60, 98, 100};
int* c,a;
arr = GradeStat(grd, 8, 10, c, a);
------> printf("%d", c[0]); <-------
return 0;
}
解决方案
推荐阅读
- sql - 从 XML 路径的结果中返回不匹配的值
- c# - C# EntityFramework .NETCore 2.0 多对多
- sql - 在 SQL 中使用外键从父表中删除行
- bigcommerce - 使用模板在本地开发主题
- python - Greenlet 未安装到 lib 目录
- amazon-web-services - 如何从 lambda@edge 访问云端起源?
- scheme - 带有盗窃 r7rs 的 Gensym 程序
- amazon-web-services - 对于需要进行大量 A/B 测试的人来说,Amazon Elastic Beanstalk 是否是正确的环境?
- python - 来自 groupby 的 Pandas 累积差异
- .net - mongodb .NET 驱动程序更新嵌套数组