c++ - 使用指针表示法从矩阵读取数据

标签 c++ c pointers matrix notation

我尝试创建的程序必须要求用户输入矩阵的大小,然后从文件中读取数据以放入所述矩阵中。唯一的问题是信息只能用指针输入,并且只能使用指针运算。完整规范如下:

  1. 读取矩阵的维度
  2. 提示输入文件名并将该文件中的数据读入矩阵
  3. 利用结构体数组,其中单个结构体保存矩阵中列的平均值、中位数和标准差。
  4. 所有代码都应通过指针和指针算术访问内存位置。

我想知道是否有任何方法可以在不使用数组表示法的情况下调用矩阵内的数据(例如 myArray[0][1])?我一直知道使用该符号,并且不了解如何在没有该符号的情况下分隔给定数据。任何帮助将不胜感激。

最佳答案

您应该尝试动态分配矩阵。以下是有关如何执行此操作的示例代码。

#include <stdio.h>
#include <stdlib.h>

int main() {
    int row, col;
    // Get the matrix dimension ...

    int **matrix = (int**) malloc(sizeof(int*) * row);
    for (int i = 0; i < row; i++) {
        matrix[i] = (int*) malloc(sizeof(int) * col);
    }

    // Do something with the matrix ...
    // You could still access the matrix with array notation

    for (int i = 0; i < row; i++) {
        free(matrix[i]);
    }
    free(matrix);

    return 0;
}

关于c++ - 使用指针表示法从矩阵读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469985/

相关文章:

c++ - 如何测量C math.h库函数的执行时间?

c++ - C++ 程序中的指针大小

c++ - 在 C++ 中使用 delete 时出现段错误

c++ - 解决方案中的链接失败

c - 从 stdin 读取整数会产生奇怪的结果

c++ - 函数指针 - DInput8.dll Hook 代码参数的用途

c++ - MinGW编译问题

c - 指向 void 指针的指针需要显式转换

c# - Visual Studio 2008 中 C# 项目中的 C++ 项目引用

c++ - 范围解析运算符之前/之后的空格