【发布时间】:2023-03-09 12:18:01
【问题描述】:
我正在尝试编写一个 C 函数来存储 0-x 范围内的乘法表。我写的函数有一个错误,它只存储表的前 2 或 3 行,而且函数也从不返回值,我很困惑,感谢任何帮助。
void makeTable (int x) {
int** table = malloc(x * sizeof(int*));
int i;
int q;
int* ptr;
for(i = 0; i <= x; i++){
ptr = calloc(x, sizeof(int));
for(q = 0; q <= x; q++){
ptr[q] = (i * q);
}
table[i] = ptr;
}
return table;
}
【问题讨论】:
-
如果你有一个大小为
x的数组,最后一个可访问的元素由x-1索引 -
你的函数被声明为
void,当它想要返回一个int **时。编译器警告应该已经注意到了这一点。
标签: c malloc multiplication calloc