2 hotyin hotyin 于 2014.08.17 01:33 提问

C语言二维数组传参问题

#include

void dfs(int **a,int m,int n){
int stack[36]={0};
printf("%d\n",*(*(a+1)+1));
}

int main(){
int a[3][3] = {1,2,3,4,5,6,7,8,9};
dfs((int**)a,3,3);
return 0;

}

运行结果是出现段错误?求解

2个回答

u012640168
u012640168   2014.08.17 02:38

不是特别理解那个函数的意义。
**a的意思是二次指针吗?该指针指向一个整型变量吧。

在主函数里面定义的a是二维数组,a是地址常量。

amoyman
amoyman   2014.08.17 09:31

函数原型应该是这样的。
void dfs(int *a[3], int m, int n);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言二维数组作为函数参数传递
一、二维数组存放方式 二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素... 二、二维数组作为函数参数 二维数组作为函数参数,实参可以直接使用二维数组名,在被调用函数中队形参数组定义可以指定所有维数的大小,也可以省略第一维的大小说明,如: void f(int a[3][4]); void f(int a[][4]); 它们是合法且等价,也可
C/C++二维数组的传参方法总结
C/C++语言二维数组的传参方法总结 转自:http://www.51testing.com/html/25/n-845125.html C/C++语言将二维数组作为参数传递容易使人迷惑且易出错,本文将常用的几种方法列出,以方便用时查阅。三种方法总结如下(GCC验证成功):   方法一:形参为二维数组并给定第二维长度   此方法是最简单最直观的方法,形参与实参一样,
关于二维数组和指针与传参
假设有一个二维数组a[M][N],要把它作为参数传给一个函数sub()
C语言学习之二维数组的传参
写c语言的时候,遇到一个这样的问题:求一个3*3整型矩阵对角线元素之和。首先入手点是二维数组,于是我很快便写好了以下代码 #include #include int Sum(int p[][3]) { int sum=0; for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { if(i==j||i+j==2) {
C语言中将二维数组作为函数参数来传递
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:方法一, 形参给出第二维的长度。例如:#include &amp;lt;stdio.h&amp;gt;void func(int n, char  str[ ][5] ){ int i; for(i = 0; i &amp;lt; n; i++)  printf(&quot;/nstr[%d] = %s/n&quot;, i, str[i]);}void main(){ cha...
c语言二维数组元素引用和参数传递
在学习C语言中,多维数组元素应用有许多不同的方式。其中以二维数组最为常见。例如声明数组 int a[3][4]。这个二维数组,如果我想取第2行第3列数据, 可以直接是a[2][3]。除了这一种方式外,我还可以:  *(*(a + 2) + 3)(E1)。这同样取出了a[2][3]。我还可以使用一种违反常规,但是也正确的方法:*((*a) + 2 * 4 + 3)(E2)。   无论是上面的什么方
字符串二维数组传参
字符串二维数组传参
c语言中,二维数组作为形参在函数之间的传递
以前经常在函数中传递一维数组或指针。今天,由于工作需要,需要将一个二维数组通过函数来进行传入,原本以为在函数接口处定义一个指向指针的指针就可以了,但是,在编译过程中发现怎么也编译不通过。经过调整,得出以下方式,仅供参考。 (1)、二维数组参数传入,通过下面的函数打印所有的二维数组中所有的值。 #include "stdio.h" #define LIE 3 int array[][LIE]
C/C++二维数组的参数传递与二维指针
在进行函数参数传递的时候,常常需要把一组数据传递给函数,我们知道一维数组在进行函数参数传递的时候,以数组名作为形参就可以,因为数组名就表示该数组的首地址,在函数内部也直接可以用[]符号访问。 那么二维数组的值该如何传递呢?其实它可以像一维数组那样以数组名作为形参和实参,也可以使用二级指针来进行传递,常用的方式如下: 方法一:通过数组名传递 这种方法第一维宽度可以省略,但必须指定第二维的宽度。
C语言二维数组作为形参传值问题
题目:编写函数void exchange(int a[M][N]),将MxN维的矩阵中最大元素和最小元素所在的列进行互换,如果最大元素与最小元素在同一列,则不要求互换。 要求:在主函数中初始化原始矩阵并输出原始矩阵,输出最大元素和最小元素的值以及各自所在的行号和列号,输出处理之后的矩阵。 解决:这题难度适中,输出最大最小元素和使用for循环比较,行号列号可以在循环时记录。列互换可以定义一个Te