c - 将二维动态数组传递给函数

标签 c arrays dynamic

我在编译时不知道数组大小,所以我声明了一个变量 count 并创建了一个数组 arr[count][count],我将在程序运行时增加这个 count 变量,并且在执行此操作之前我将重新分配它的内存。但我无法创建一个接受 arr[count][count] 的函数。我怎样才能做到这一点 ?当我这样做时:

void add_friend(int friends[][*count], int p1, int p2)
{

}

编译器给出错误:此处未声明计数。

最佳答案

你不能直接做你所要求的事情,至少在C中不能。但是正如@millimoose所建议的,如果你知道尺寸(可以作为整数传递),你可以做一些算术来找出 friend 在哪里[p1][p2] 是。如果每行有 C 个元素,那么您就知道 Friends[r][0] 是从 Friends 开始的 C*r 个整数,并且可以将该行视为一个简单的 int 数组。

关于c - 将二维动态数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20962291/

相关文章:

c - 了解矩阵 c 的分配

无法通过多个 'read' 调用从多播套接字读取 RTP 数据包(或获取其大小)

java - 使用数组实现我自己的 ArrayList

c# - 如何处理动态创建的控件?

在 C 中创建可变大小的数组

C - 具有未正确初始化的字符串成员的静态结构数组?

javascript - 对对象数组内的对象数组中的值进行排序

javascript - 如何增加 JSON 变量长度?

c++ - 既然可以使用=运算符给字符串赋值,为什么还要在赋值前使用new运算符动态分配内存给字符串呢?

java - 要以 Web 表单读取的 DB 表中的变量结构