美文网首页
【tip】C语言如何传参二维数组

【tip】C语言如何传参二维数组

作者: papi_k的小茅屋 | 来源:发表于2023-11-08 23:55 被阅读0次

开始在做力扣题目时候,偶尔会因为二维数组传参而搞得晕头转向,现在梳理内容如下,掌握之后就不在头疼啦。

1.使用calloc(或malloc)申请二维指针,调用时直接传指针。

声明调用函数:

void dfs(int len, int index, int **res, int *resCnt)

相关代码片段:

int **res = (int **)calloc(size, sizeof(int *));

for (int i = 0; i < size; i++) {

    res[i] = (int *)calloc(numsSize, sizeof(int));

}

调用时,直接传res即可:

dfs(x, x, res, x);

2.如果res不是通过calloc申请,而是直接定义的

例如:int res[m][n]

这时候,正确的dfs中res的声明格式为:int res[][len],第一维可以省略也可以不省。

void dfs(int len, int index, int res[][len], int *resCnt)

相关代码片段:

int res[size][numsSize];

for (int i = 0; i < size; i++) {

    memset(res[i], 0, sizeof(int) * numsSize);

}

调用时:

dfs(x, x, &res, x);

3.同上一种方式,只不过声明格式不同

还可以这么写:int (*res)[len]

void dfs(int len, int index, int (*res)[len], int *resCnt)


参考链接:[C语言]二维数组传参的格式(详细+总结)

相关文章

网友评论

      本文标题:【tip】C语言如何传参二维数组

      本文链接:https://www.haomeiwen.com/subject/obfxwdtx.html