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 阅读(1443) 
评论(9)  编辑  收藏  所属分类: 
C/C++