堆栈程序理解
来源:互联网 发布:淘宝众筹怎么做 编辑:程序博客网 时间:2024/06/05 21:05
#include "stdio.h"#include "stdlib.h"#include "string.h"//堆char *getMem(int num){ char *p1= NULL; p1 = (char *)malloc(sizeof(char)*num); //用户分配内存空间,由操作系统管理,函数结束后不会被析构掉 if( NULL== p1) { return NULL; } return p1;}//栈 局部变量不能把其内存地址作为函数返回值返回//注意:此处 return 不是把内存块64个字节return出来,而是把内存块的首地址(内存标号,比如0xaa11)返回给主函数中的tmp//理解指针的关键是 内存,没有内存哪来的指针。char *getMem2(){ char buf[64]; //临时变量,系统自动分配内存空间,函数结束后将会被析构掉 strcpy(buf,"123456"); printf("buf:%s\n",buf); //return buf; //注意:函数执行完,buf[]数组的内存块即被析构掉了, //若将该内存块的首地址buf返回给主函数,其对应的内容是未知的,程序可能崩溃}void main(){ char *tmp = NULL; tmp = getMem(10); if( NULL==tmp ) { return ; } strcpy(tmp,"233333"); //向tmp所指向的内存空间中copy数据 printf("tmp:%s.\n",tmp); free(tmp); tmp=getMem2(); printf("tmp:%s.\n",tmp); //release下可以输出字符串“123456”,但是debug下乱码 system("pause");}
0 0
- 堆栈程序理解
- 理解程序堆栈
- java程序中对堆栈的理解
- 堆栈理解
- 堆栈理解
- 堆栈理解
- 堆栈理解
- 堆栈理解
- 用Qt程序对堆栈进行深入理解
- 程序堆栈
- 堆栈程序
- 程序堆栈
- 堆栈的一些理解~~
- 关于堆栈理解
- 深入理解任务堆栈
- 深入理解任务堆栈
- 堆栈的理解
- 堆栈指针理解
- 学习之maven(1)
- syms使用错误
- Java RMI 简介及其优劣势总结
- react的初始化阶段
- 不是技术牛人,如何拿到国内IT巨头的Offer
- 堆栈程序理解
- BZOJ 2427: [HAOI2010]软件安装
- Android 的内存泄漏
- React Native十五:原生UI组件
- 欢迎使用CSDN-markdown编辑器
- 动态获取时间
- Qt Creator设置代码自动补全
- 贪心算法——Prim最小生成树
- ubuntu中kvm桥接模式设置