程序猿之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程可以分配的内存大小)
2014-11-12 20:08
1071 查看
主要内容:函数返回指针注意事项<悬空指针>、查看进程可以分配的内存大小
#include <stdio.h> char * favorite_fruit() { static char fruit[] = "apple"; // 不加static的话这个函数还回的指针会悬空,因为在函数退出时fruit组数被销毁 // 加了static后fruit数组分配在数据段里,而不是堆栈中,生命期和程序一样长,函数退出时变量 // 依然有效 return fruit; } int main() { char *a = favorite_fruit(); printf("%s\n",a); /* * 查看你的进程能分配多大内存 * 总共分配的内存量取决于系统配置的 */ int MB = 0; while(malloc(1 << 10)) ++KB; printf("Allocated %d KB total\n", KB); return 0; }
输出:
相关文章推荐
- 程序员之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程能够分配的内存大小)
- C语言学习9: malloc动态内存存储,动态内存分配去空格字符增长版,动态内存分配去符号incr增长版,型参和返回值都是int型的函数的指针,main函数的地址也可以用指针指向,typedef定义函数指针,函数定义与嵌套的作用,返回函数指针类型,const作用
- STL类指针容器container<class*> 元素clear 注意事项
- android 访问web 返回xml 的注意事项;<?xml version="1.0" encoding="UTF-8"?>前面不能有空格 且 contentType="text/xml;
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。
- C/12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存
- 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针
- C语言03 - 函数指针、内存分配、字符串使用
- <C语言>关于函数返回值是指针,取不到值的问题研究
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- c++中函数中变量内存分配以及返回指针、引用类型的思考
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- <复习>指针结构体内存分配
- 函数返回类型为指针的时候的注意事项
- 程序猿之---C语言细节14(字符串数组内存分配细节‘\0’空字符、字符串数组赋值细节、字符串换行连接和下标)
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- C++ 函数返回指针注意事项
- 程序猿之---C语言细节1(==与=、函数指针、数组字符串printf、int ((b));、char b =‘abcd’)