c - 二维数组未在 c 的循环中正确存储信息
问题描述
我正在尝试将二维数组从一个单独的函数返回到我的主函数,在该函数中我输入了一些我在函数中计算的数据。但是,第二行没有正确存储信息。如果我删除它正确存储的循环,但我需要一个循环以避免一遍又一遍地编写相同的代码。示例代码:
double** func1(int int1, double double1, double double2, float float1){
double** pntrArray;
int i;
pntrArray = calloc((length * 12), sizeof(double*));
for(i = 0; i < 2; i++){
pntrArray[i] = calloc(2, sizeof(double));
int r = 0;
do{
//calculations here
pntrArray[0][r] = data calculated;
pntrArray[1][r] = data calculated;
r++;
}while(r < int1);
我尝试了不同类型的循环,但我无法让它输入正确的数据。我刚刚开始学习 c,所以这可能是一个非常简单的解决方法。
解决方案
尺寸被交换或滥用:
这为行分配指针length*12
,但后面的代码建议您只需要两行:
pntrArray = calloc((length * 12), sizeof(double*));
然后这会为两行中的每一行中的两个元素分配空间,但前面的代码建议您需要length*12
两行中的每一行中的元素:
for(i = 0; i < 2; i++){
pntrArray[i] = calloc(2, sizeof(double));
稍后,这适用于仅两行中的一些元素:
pntrArray[0][r] = data calculated;
pntrArray[1][r] = data calculated;
推荐阅读
- assembly - 错误:int 0 的非法描述符类型 0
- docker - 配置 docker 加载图像的路径
- r - 以不同颜色绘制高于零与低于零的线
- android - 当我将 Firebase 与我的 Android Gradle 连接时,我遇到了这个问题
- r - 从 lmer 模型中绘制随机截距
- tensorflow - 升级到 tensorflow2.0 alpha 有一些 cuda 麻烦
- xamarin.forms - 防止双击android Prism xamarin
- excel - 在 VBA 中创建一个用户表单,用于将新记录的数据输入到表中
- python - 想要使用 tensorflow 拆分从 csv 获得的训练和测试数据
- python - 计算嵌套字段的所有唯一值的频率计数器