美文网首页
堆和字符串

堆和字符串

作者: 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

相关文章

  • 堆和字符串

    堆上 结果: 栈上 结果:

  • JVM知识

    java字符串在内存中:存放于堆中或者字符串常量区 堆内存 堆内存分为Permanent Space(持久代) 和...

  • 三、字符串和矩阵

    三、字符串和矩阵 1. 字符串 1.1 字符串的按需(堆)存储结构 实现: HString 类中存储字符串的方式和...

  • rust字符串&str和String

    常用rust字符串类型为&str和String,前者是字符串的引用,后者是基于堆创建的,可增长的字符串。 &str...

  • C++ 输入输出,字符串和面向对象

    基本输出 输入输出 栈和堆的实例化对象 字符串 #include

  • 【JVM】JVM存放字符串的位置

    字符串存放的位置有两个:字符串常量池和堆内存。 使用常量字符串初始化的字符串对象,它的值存放在字符串常量池中; 使...

  • NSString篇

    1.常量字符串与堆字符串 常量区中的字符串只要内容一致, 不会重复创建,与C语言中的一致 堆中字符串对象 2.字符...

  • Java 字符串的坑

    字符串一旦生成就不能改变。 字符串本身在堆中,而字符串常量池中有指向他的引用,字符串常量池也在堆中! 当字面量方式...

  • 三. 串与矩阵

    一. 串 字符串大多使用堆分配存储, 堆由C语言的动态分配函数malloc和free来管理. 串的模式匹配 问题:...

  • Java编程学习中遇到的问题整理

    1.字符串比较之中“==”和equals()的区别? ==:比较的是两个字符串内存地址(堆内存)的数值是否相等,属...

网友评论

      本文标题:堆和字符串

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