s****n 发帖数: 700 | 1 1 #include
2
3 int mat[10][20];
4
5
6 void func(float **p){
7 int i,j;
8
9 for(i=0; i<10; i++)
10 for(j=0; j<20; j++)
11 printf("%d\n", p[i][j]);
12
13 }
14
15
16 int main()
17 {
18 int mat[10][20];
19 int i,j;
20
21 for(i=0; i<10; i++)
22 for(j=0; j<20; j++)
23 mat[10][20] = i + j;
24
25 func(mat);
26 return 0;
27 }
似乎错误是int **p不能access MAT数组的内容, 应该怎么修改才可以呢? 非常感谢 |
I*****y 发帖数: 602 | 2 p指向的是float类型,不是mat[][]的整形呀!
【在 s****n 的大作中提到】 : 1 #include : 2 : 3 int mat[10][20]; : 4 : 5 : 6 void func(float **p){ : 7 int i,j; : 8 : 9 for(i=0; i<10; i++) : 10 for(j=0; j<20; j++)
|
s****n 发帖数: 700 | 3 笔误,改掉后一样出错, segmentation fault
【在 I*****y 的大作中提到】 : p指向的是float类型,不是mat[][]的整形呀!
|
X****r 发帖数: 3557 | 4 二阶数组和指针的指针根本是两码事啊。你定义
void func(float p[10][20]){ 或者
void func(float (*p)[20]){
就对了。
【在 s****n 的大作中提到】 : 笔误,改掉后一样出错, segmentation fault
|
t****u 发帖数: 8614 | 5 void func(float p[][20]) 也可以。
【在 X****r 的大作中提到】 : 二阶数组和指针的指针根本是两码事啊。你定义 : void func(float p[10][20]){ 或者 : void func(float (*p)[20]){ : 就对了。
|
t****t 发帖数: 6806 | 6 no one saw problem in line 23? :)
【在 s****n 的大作中提到】 : 笔误,改掉后一样出错, segmentation fault
|
c*****t 发帖数: 1879 | 7 lol...
【在 t****t 的大作中提到】 : no one saw problem in line 23? :)
|
k**L 发帖数: 3630 | 8 yeah, I was wondering about that too.no wonder the MAT can't be accessed. It
' all null except for the [10][20].
【在 t****t 的大作中提到】 : no one saw problem in line 23? :)
|
t****u 发帖数: 8614 | 9 typo ba!
肯定是,
m[i][j]=i+j;
【在 t****t 的大作中提到】 : no one saw problem in line 23? :)
|
m****u 发帖数: 3915 | 10 楼主的程序能通过编译?
【在 s****n 的大作中提到】 : 笔误,改掉后一样出错, segmentation fault
|
|
|
f********i 发帖数: 563 | 11 23行会造成segmentation fault,呵呵
不知道楼主的point是什么:)
【在 s****n 的大作中提到】 : 笔误,改掉后一样出错, segmentation fault
|
o*******r 发帖数: 131 | |
t****u 发帖数: 8614 | 13
这个没有关系。用local scope的。
【在 o*******r 的大作中提到】 : 还有的是mat定义了两次?
|
t****u 发帖数: 8614 | 14 C可以。
C++这种Strong type的应该编译会报错,至少是一个warning。
【在 m****u 的大作中提到】 : 楼主的程序能通过编译?
|
v****s 发帖数: 1112 | 15 lol......
【在 t****t 的大作中提到】 : no one saw problem in line 23? :)
|