1 #include <stdio.h>
2 #include <stdlib.h>
3 //前算完算阿,以前一直以为弄懂了传值和传引用,但是现在//一看未必阿,特别是碰到指针的时候
4 char **data;
5 void fun(char ** pointer)
6 {
7 pointer=(char**)malloc(sizeof(char*) * 10);
8 pointer[0] = (char*)malloc(sizeof(char) * 10);
9 pointer[0][0] = 'a';
10 pointer[0][1] = 'b';
11 pointer[0][2] = '\0';
12
13 printf("IN fun: output: %s\n", pointer[0]);
14
15 }
16 int main()
17 {
18
19 fun(data);
20 printf("IN main: output: %s\n", data[0]);
21 return 0;
22 }
23
24
上面的代码能正确执行吗?
各位高手应该能看出来了。。
结果是:(gcc下)
IN fun: output: ab
Segmentation fault (core dumped)
愣了好一阵子,才反映过来,被传的指针蒙骗了,
在12行加入这行就ok了。这个随是小事,但马虎不得阿,哈哈
data = pointer;
posted on 2008-03-28 22:54
fullfocus 阅读(1419)
评论(9) 编辑 收藏 所属分类:
C/C++