使用指针做函数返回值和指针(栈内存与堆内存的函数形式使用).docVIP

  • 4
  • 0
  • 约2.89千字
  • 约 4页
  • 2017-05-16 发布于重庆
  • 举报

使用指针做函数返回值和指针(栈内存与堆内存的函数形式使用).doc

使用指针做函数返回值和指针(栈内存与堆内存的函数形式使用)

一、使用指针做函数返回值: 1、当使用指针做为函数的返回值时,主函数处的char *p;将获得调用函数char *pf;的值,即一个地址值,如oxAE72。此时需要我们注意的是该地址值所指向的空间是否存在(即已向操作系统声明注册,不会被释放,即可能被其他操作修改); 2、使用栈内存返回指针是明显错误的,因为栈内存将在调用结束后自动释放,从而主函数使用该地址空间将很危险。 例如: char* GetMemory() { char p[] = hi; return p; } void main() { char *str = GetMemory(); //出错! 得到一块已释放的内存 printf(str); } 3、使用堆内存返回指针是正确的,但是注意可能产生内存泄露问题,在使用完毕后主函数中释放该段内存。 例如: char* GetMemory()

文档评论(0)

1亿VIP精品文档

相关文档