C语言 堆栈
来源:互联网 发布:锐捷网络和星网锐捷 编辑:程序博客网 时间:2024/04/26 05:28
今天写了一个错误程序:
#include <stdio.h>#include <stdlib.h>#include <string.h>struct test{char a[5];char b[5];};int main(){struct test test1;strcpy(test1.a,"1111111");strcpy(test1.b,"2222222");printf("%s\n",test1.a);printf("%s\n",test1.b);return 0;}
运行结果:
111112222222
2222222
--------------------------------
Process exited after 0.08035 seconds with return value 0
请按任意键继续. . .
111112222222
2222222
--------------------------------
Process exited after 0.08035 seconds with return value 0
请按任意键继续. . .
可以发现属性a的值已经变了,这是为啥呢,因为所申请到的内存是连续的,而在给属性a赋值的时候,长度大于
所申请到的内存,那么会从a的起始位置,一直往后赋值,这样的结果是把属性b的内存也占用了(因为是连续的)
所以这样容易造成数据的丢失!!切记不可!!
所申请到的内存,那么会从a的起始位置,一直往后赋值,这样的结果是把属性b的内存也占用了(因为是连续的)
所以这样容易造成数据的丢失!!切记不可!!
说说堆栈,我所理解的堆栈它们都是内存,堆是给程序员使用的,可以去申请内存,但记住用完之后也要释放内存。而
栈是个系统用的,由系统自动分配自动释放,不需要去管理。
这样理解很浅显,但是够使了!
完 !!
0 0
- C语言实现堆栈
- c语言 堆栈
- C语言的堆栈
- c语言的堆栈
- C语言堆栈入门
- c语言和堆栈
- C语言堆栈入门
- C语言 堆栈
- C语言堆栈入门
- c语言堆栈问题
- C语言之堆栈
- c语言自定义堆栈
- c语言中的堆栈
- C语言:堆栈
- C语言堆栈说明
- C语言堆栈入门
- C语言堆栈说明
- C语言 堆栈
- WebStorm设置本机IP访问页面
- L1-019. 谁先倒
- bzoj 4361: isn (容斥+DP+树状数组)
- 运算符计算
- 【Hihocoder [Offer收割]编程练习赛10 B】【简单DP】出勤记录II
- C语言 堆栈
- 在eclipse上链接Bluestack虚拟机
- Springmvc知识二------数据模型的处理&视图&视图解析器
- h2571动态规划
- GNU/Linux相关资源
- EAP技术简介
- 二分
- 牛逼的电商运营为什么不自己开店铺要去打工?(知乎精选)
- TensorLayer