zoukankan      html  css  js  c++  java
  • 堆栈

    #include <stdio.h>
    #include <stdlib.h>
    
    int global_uninit_var;
    int global_init_var1 = 520;
    int global_init_var2 = 880;
    
    void func(void);
    
    void func(void)
    {
    	;
    }
    
    int main(void)
    {
    	int local_var1;
    	int local_var2;
    
    	static int static_uninit_var;
    	static int static_init_var = 456;
    
    	char *str1 = "I love FishC.com!";
    	char *str2 = "You are right!";
    
    	int *malloc_var = (int *)malloc(sizeof(int));
    
    	printf("addr of func -> %p
    ", func);
    	printf("addr of str1 -> %p
    ", str1);
    	printf("addr of str2 -> %p
    ", str2);
    	printf("addr of global_init_var1 -> %p
    ", &global_init_var1);
    	printf("addr of global_init_var2 -> %p
    ", &global_init_var2);
    	printf("addr of static_init_var -> %p
    ", &static_init_var);
    	printf("addr of static_uninit_var -> %p
    ", &static_uninit_var);
    	printf("addr of global_uninit_var -> %p
    ", &global_uninit_var);
    	printf("addr of malloc_var -> %p
    ", malloc_var);
    	printf("addr of local_var1 -> %p
    ", &local_var1);
    	printf("addr of local_var2 -> %p
    ", &local_var2);
    
    	return 0;
    }
    

    代码段:通常用来存放程序执行代码的内存区域

    数据段通常用来存放已经初始化的全局变量和局部静态变量

    bss段存放未初始化的全局变量的一块内存区域

    堆和栈的区别:

    堆由程序员手动申请 栈由系统自动分配

    堆由程序员手动释放,栈由系统自动释放

    #include <stdio.h>
    #include<stdlib.h> 
    int *func(){
    	int *ptr=NULL;
    	ptr=(int*)malloc(sizeof(int));
    	if(ptr==NULL){
    		exit(1);
    	}
    	*ptr=520;
    	return ptr;
    } 
    int main(void)
    {
    int *ptr=NULL;
    ptr=func();
    printf("%d",*ptr);
    free(ptr);
    
    	return 0;
    }

    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    int main(){
    	int *ptr1=NULL;
    	int *ptr2=NULL;//栈局部变量 函数参数 函数返回值 
    	ptr1=(int*) malloc(sizeof(int));//堆中 
    	ptr2=(int*)malloc(sizeof(int));
    	printf("栈%p   %p
    ",&ptr1,&ptr2);
    	printf("堆%p    %p",ptr1,ptr2); 
    }
    
    #include <stdio.h>
    
    int main(void)
    {
    	char a = 0, b = 0;
    	int *p = (int *)&b;
    
    	*p = 258;
    
    	printf("%d %d
    ", a, b);
    
    	return 0;
    }
    

  • 相关阅读:
    java获取当前时间(年~~毫秒)
    python获取当前时间
    PyThon3运算符
    PyThon3中判断一个内容属于另一个内容("a" 在 “abcd”中
    PyThon3判断语句
    【BZOJ2460】元素(BJOI2011)-异或线性基+贪心
    【BZOJ3534】重建(SDOI2014)-矩阵树定理
    【BZOJ1227】虔诚的墓主人(SDOI2009)-线段树+离散化+组合数
    【BZOJ2815】灾难(ZJOI2012)-拓扑排序+建树+LCA
    【BZOJ2209】括号序列(JSOI2011)-Splay
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/11163460.html
Copyright © 2011-2022 走看看