码迷,mamicode.com
首页 > 其他好文 > 详细

指针传递

时间:2014-12-03 23:18:00      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   sp   div   log   

 

 

 1 void vGetMemory(char * pc)
 2 {
 3     pc = (char *)malloc(100);
 4 }
 5 
 6 void vTest(void)
 7 {
 8     char * pcStr = NULL;
 9     vGetMemory(pcStr);
10     strcpy(pcStr, "hello world");
11     printf(pcStr);
12 }

这段代码不能够运行,会奔溃掉。

因为vGetMemory是值拷贝,导致了pcStr一直都是NULL。

 

改为:

 1 #include <iostream>
 2 #include <malloc.h>
 3 using namespace std;
 4 
 5 void vGetMemory(char ** ppc)
 6 {
 7     *ppc = (char *)malloc(100);
 8 }
 9 
10 int main()
11 {
12     char * pcStr = NULL;
13     vGetMemory(&pcStr);
14     strcpy(pcStr, "hello world");
15     printf(pcStr);
16     return 0;
17 }

 

指针传递

标签:style   blog   io   ar   color   os   sp   div   log   

原文地址:http://www.cnblogs.com/mdgsf/p/4141508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!