函数返回指针

原创 2016年08月30日 22:47:20

如下代码输出结果是什么?

#include<stdio.h>
char *myString()
{
    char buffer[6] = {0};
    char *s = "Hello World!";
    for (int i = 0; i < sizeof(buffer) - 1; i++)
    {
        buffer[i] = *(s + i);
    }
    return buffer;
}
int main(int argc, char **argv)
{
    printf("%s\n", myString());
    return 0;
}

解题思路:

函数char *myString()中没有使用new或者malloc分配内存,所有buffer数组的内存区域在栈区

随着char *myString()的结束,栈区内存释放,字符数组也就不存在了,所以会产生野指针,输出结果未知 

答案:

返回的野指针,内容未知。

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于函数返回值为指针类型的分析

先看一个例子,这是初学者经常遇到的问题 char *GetString(void) {  char p[] = "hello world";  return p; //编译器一般将提出警告...
  • zxccaoya
  • zxccaoya
  • 2016年12月05日 18:58
  • 5278

[C/C++]如何解读返回函数指针的函数声明

int (*(*pf())())() { return nullptr; }   从来没有见过这样的函数声明。那么它究竟是一个怎样的函数呢?我努力回忆起《C专家编程》一书的内...
  • u012861978
  • u012861978
  • 2015年09月12日 09:43
  • 1027

【C语言】返回指针的函数与指向函数的指针

 一、返回指针的函数  指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的。 返回指针的函数的一般形式为:类型名 * 函数名(参数列表)  比如下面这个函数,返回一个...
  • u012252959
  • u012252959
  • 2016年12月13日 09:36
  • 2647

c/c++使用指针做函数返回值和指针作函数参数问题

一、使用指针做函数返回值:   1、当使用指针做为函数的返回值时,主函数处的char *p;将获得调用函数char *pf;的值,即一个地址值,如oxAE72。此时需要我们注意的是该地址值所指...
  • zhangjikuan
  • zhangjikuan
  • 2016年07月07日 09:32
  • 2008

c++函数指针和返回值为指针的函数

1  指针的指针,数组指针 ,指针数组 2  函数指针 指针函数  3  const T   Tconst     T  f ()const      const  T f()...
  • qq_21034239
  • qq_21034239
  • 2017年04月13日 21:34
  • 497

声明返回数组指针的函数

声明返回数组指针的函数
  • u012333003
  • u012333003
  • 2014年05月18日 12:43
  • 1517

返回指针的函数

返回指针的函数 每个函数可返回一个值,返回值可以是char、int、float、double等类型,当将返回值类型设置为void时,表示函数没有返回值。在C语言中,还允许一个函数的返回值是一个指...
  • ggxxkkll
  • ggxxkkll
  • 2013年05月20日 17:45
  • 6814

函数指针,指针函数,返回值为指针的函数

在学习C语言时,一个比较容易混淆的概念就是函数指针、指针函数、返回值为指针的函数。本文将对这三个概念进行区分。指针函数就是返回值为指针的函数,两个本质上是同一事物,只是叫法不同。函数指针就是一个指向函...
  • wangxufa
  • wangxufa
  • 2017年06月08日 21:23
  • 610

C++学习记录之函数返回值为指针的问题

一般在函数中定义一个对象有两种方法: 1、在栈上建立局部变量。注意,在栈上时!栈用于函数是为了返回时找得到调用点(在调用时压入栈的) ,那么,返回时要POP才能得到。函数体中建立的任何东西都释放掉了,...
  • xiaowenliuwen
  • xiaowenliuwen
  • 2015年11月18日 19:59
  • 1568

C/C++函数返回数组指针的一点点小姿势

数组指针问题一直是C/C++语言初学者的头疼问题,这里图图和大家分享一下函数返回数组的问题。如果在函数里定义静态数组,那么函数结束时数组内存空间也就会被释放,这时候如果返回数组首地址的话,那么获得的指...
  • u011106520
  • u011106520
  • 2014年03月29日 23:55
  • 1239
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数返回指针
举报原因:
原因补充:

(最多只允许输入30个字)