当前位置:  技术问答>linux和unix

关于函数回传字符数组指针问题

    来源: 互联网  发布时间:2016-02-07

    本文导语:  今天遇到一个问题(类似),麻烦高人指点一下: #include  #include char * straddress(){      char a[]={'a','b','c',''};    printf("%xn",a);  //打印数组的地址    return a; } int main(){    char *b;    b= straddress();    printf...

今天遇到一个问题(类似),麻烦高人指点一下:
#include 
#include

char * straddress(){
 
   char a[]={'a','b','c',''};
   printf("%xn",a);  //打印数组的地址
   return a;
}

int main(){

   char *b;
   b= straddress();

   printf("%xn",b);  // 检测 B的地址是否和A相同

   while(*b!= '')   //判断条件,也许问题在这
     printf("%c",*b++);

   return 0;    
}
结果:a,b 地址相同,但在main()函数中只能打印出一个:a 下面全是乱码

但是在下面的函数中没有问题:
int main(){
   char a[]={'a','b','c',''};
   char *b;
   b= a;
   while(*b!= '')   
     printf("%c",*b++);

   return 0;    
}


按正常考虑,b不是也指向了a的字符数组了吗?怎么从函数中传回来就不行了呢?

多谢!!

能否知道底层是如何实现的?

|
因为数组a是临时变量,函数返回后,该临时变量就会被释放掉.返回的只是一个地址,但地址的内容已经被释放掉了.

|
因为a指向的是堆栈地址。

在a前面加上static,即可实现你的目的。 

static char a[]={'a','b','c',''};


具体查阅static资料.

    
 
 

您可能感兴趣的文章:

  • php数组函数之array_combine() 数组合并函数
  • php数组函数之array_count_values() 统计数组中所有值出现的次数
  • php数组函数之array_unique() 去除数组中重复的元素值
  • php数组函数之array_key_exists() 查找数组键名是否存在
  • 对象数组的构造函数调用问题
  • PHP二维数组排序的函数
  • 如何在子函数中为主函数的数组变量分配空间
  • 一个PHP二维数组排序的函数分享
  • php数组函数in_array() 查找数组值是否存在
  • c++将数组名作为函数参数对数组元素进行相应的运算
  • php数组函数之array_sum() 计算数组元素值之和
  • php数组函数之shuffle()与array_rand() 随机函数
  • PHP 数组字符集编码转换的函数
  • 关于函数,数组的问题
  • 可以在jsp函数中调用javascript中的数组么?如可以,该如何调用?
  • 不使用php api函数实现数组的交换排序示例
  • PHP将回调函数作用到给定数组单元的方法
  • 如何用ioctl函数获得一个if_req的数组,即获取所有网络接口的信息
  • Python数组条件过滤filter函数使用示例
  • php使用array_rand()函数从数组中随机选择一个或多个元素
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 深入解析函数指针与返回函数的指针
  • 指向类成员函数的指针其实并非指针
  • 请问如何根据函数指针打印出这个函数的名称?
  • c++函数指针和回调函数示例
  • 利用函数指针的好处是什么?
  • JAVA中函数调用时,能不能向 C/C++一样函数的入口参数可以为传出值(就是引用,或指针)
  • C:函数指针
  • 一般函数指针和类的成员函数指针深入解析
  • 一个线程函数如何取得GTK界面的所有控件指针?
  • 函数指针的一些概念详解
  • 系统函数返回的指针指向的内存释放的问题
  • sp->callback或snmp_callback函数指针在哪里赋值?
  • 函数指针的强制类型转换实现代码
  • 函数指针的问题
  • 有些系统函数返回一个数据指针,实际的内存占用空间应该在那里??
  • C#委托所蕴含的函数指针概念详细解析
  • C++中返回指向函数的指针示例
  • 请问return语句会执行哪些操作?在函数中return一个已分配内存的指针,该指针所占用的内存会释放吗?
  • C++普通函数指针与成员函数指针实例解析
  • 关于linux下多线程运行由同一函数指针传入不同函数体的问题
  • C++ Maps 成员 key_comp():返回比较元素key的函数
  • 请问:定义了2个函数,其中第一个函数要访问另外一个函数的变量,怎么处理阿?谢谢
  • C++ Maps 成员 value_comp():返回比较元素value的函数
  • 如果知道一个函数的地址或函数名,如何得到函数所在的文件名?
  • C++ MultiMaps 成员 key_comp():返回比较key的函数
  • java的数学函数在那个类中,如幂函数、指数、对数、双曲线函数等?
  • C++ MultiMaps 成员 value_comp():返回比较元素value的函数
  • 一个父类的构造函数的参数是(Applet applet),请问它的子类构造函数当中应怎样调用父类构造函数?
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • 虚函数被类的构造析构函数和成员函数调用虚函数的执行过程
  • C++ Strings(字符串) 成员 Constructors:构造函数,用于字符串初始化


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3