美文网首页
堆和字符串

堆和字符串

作者: Jianbaozi | 来源:发表于2020-03-05 22:25 被阅读0次

    堆上

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <malloc.h>
     int main(){    
        char* s1=malloc(5*sizeof(char));
        memcpy(s1,"abcd",5);
        char* s2=s1+3;
        memcpy(s2,"efgh",5);
        printf("%s@%p\n%s@%p\n",s1,s1,s2,s2);
        free(s1);
        free(s2);
        return 0;     
        }
    
    char.png

    结果:

    D:\Codes\test>a
    abcefgh@00000000001B13D0
    efgh@00000000001B13D3
    

    栈上

    #include <stdio.h>
     int main(){    
        char* s1="abcd";
        char* s2=s1+3;
        s2="efgh";//s2覆盖了s1+3的值
        printf("%s@%p\n%s@%p\n",s1,s1,s2,s2);
        return 0;     
    }
    

    结果:

    D:\Codes\test>a
    abcd@0000000000404030
    efgh@0000000000404035
    

    相关文章

      网友评论

          本文标题:堆和字符串

          本文链接:https://www.haomeiwen.com/subject/kpelrhtx.html