c - 在 C 中对三重指针使用 fread

标签 c multidimensional-array fread

我知道如何使用 for 循环将文件读入二维数组以指示您在 C 中存储数据的位置,但我感兴趣的是您是否可以使用一个 fread() 调用来执行此操作。也就是说,我可以做这样的事情吗:

int A[5][5];
fread(&A, sizeof(int), 25, filePtr);

我现在尝试此操作时出现段错误,所以我想知道是否可以这样做。

编辑: 好吧,我想以这种方式使用 fread 并不是我的问题。我的问题是我必须从函数内部调用 fread,而 A 是在该函数外部定义的。

func(int size, int ***A)
{
  fread(*A, sizeof(int), size*size, filePtr);
}

main
{
  int A[n][n];
  func(n, &A);
}

所以我的问题是我对 fread 的调用仍然存在段错误,我必须为我的函数原型(prototype)使用三重指针。我只是为了好玩而尝试了 A(而不是 *A),但仍然遇到相同的段错误。看起来我只是用指针忽略了一些东西。

最佳答案

A 已经是指向数组的指针。 &A是指向this指针的指针,这不是你想要的。您需要做的就是将 &A 替换为 A

关于c - 在 C 中对三重指针使用 fread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12718952/

相关文章:

c++ - 大型动态多维数组不工作

c - fread 的怪异行为 |函数在从 main 调用时的行为与从其他函数调用时的行为不同

c - fread、fwrite 适用于大尺寸视频文件(约 180MB)

python - 在c中执行python脚本并获取脚本pid

有人可以解释这是什么意思吗?无效(*func)();

c - 高效C float

c# - 初始化多维字符串数组

c# - 将 C++ 数组移植到 C# 数组

c - fread 在开始和结束时跳过字节 c/c++

C:在函数中访问结构的成员