字符串一级指针的内存模型图(盲点,以前自己懵懂)

#define  _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

void main61()
{
	char buf[20]= "aaaa"; //定义并且初始化
	char buf2[] = "bbbb";
	char *p1 = "111111";
	char *p2 = malloc(100);
	strcpy(p2, "3333");

	system("pause");
	return ;
}

  

时间: 2024-10-19 17:13:41

字符串一级指针的内存模型图(盲点,以前自己懵懂)的相关文章

JVM内存模型图以及简单介绍

局部变量表:应用程序中定义的普通变量就存放在栈中,栈中变量的大小程序运行开始的时候已经固定. 栈:方法执行时创建栈针,然后进入到栈中,根据先进后出的顺序进行执行. 堆:对重存放程序中创建的对象. 新生代:新生代分为三个区域.Eden,ServivorFrom,ServivorTo.新创建的对象先存放到Eden区域,当Eden区域放满后,触发GC.对象被转移到Servivor,当Servivor满了会触发GC,再次留下来的对象进入老年代. 老年代:老年代的空间相对新生代要比较大,不会经常进行GC,

二级指针做输入的第三种内存模型:手工打造二维内存

声明局部变量p, p指向一段内存地址,这段内存地址存放这N个指针,每个指针都指向malloc的另一段内存. 内存模型图如下: p应该是二级指针 #define _CRT_SECURE_NO_WARNINGS#include<stdlib.h>#include<stdio.h>#include<string.h>#include<ctype.h> char**getMem(int num){ int i = 0, j = 0; char** p2 = NULL

二级指针的3种内存模型

二级指针的内存模型 二级指针的第一种内存模型 Char*Accary [ ] ={ "aaaaaa", "bbbbbb", "ccccccc" }; //接口形参使用方式 Intprintfarr(char **ArrayStr,int iNUm) { For(i =0; i<iNUm; i++) { Printf("%s \n", ArrayStr[i]); } } //调用方式 Printfarr(Accary, 3

Java虚拟机解析篇之---内存模型

今天闲来无事来,看一下Java中的内存模型和垃圾回收机制的原理.关于这个方面的知识,网上已经有非常多现成的资料能够供我们參考,可是知识还是比較杂的,在这部分知识点中有一本书不得不推荐:<深入理解Java虚拟机>,如今已经是第二版了.这本书就从头開始详细介绍了Java整个虚拟机的模型以及Java的类文件结构,载入机制等.这里大部分的知识点都是能够在这本书中找到的,当然我是主要还是借鉴这本书中的非常多内容的.以下就不多说了.进入主题吧. 首先来看一下Java中的内存模型图: 第一.程序计数器(PC

JVM内存模型小结

JVM运行时的数据区域划分图如下,该图是JVM内存模型最主要的内容. 从图中可以看出来,JVM将内存主要划分为五个部分:程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区.这些被划分为用途不一的数据区域有着各自的特点,它们都有自己创建和销毁的时间,有的区域随着进程的启动而存在,有的是伴随着用户线程的启动而建立.随着线程的结束而销毁. (一) 程序计数器(Program Counter Register) 1> 内存空间较小; 2> 当前线程所执行的字节码行号指示器: 功能:a.在JV

C++/C#中堆栈、对象内存模型、深浅拷贝、Array.Clone方法

转载自:http://blog.csdn.net/jarvischu/article/details/6425534 目录 1.      C++/C#中对象内存模型..................................................................................................... 1 1.1.       栈内存与堆内存.............................................

C语言 二级指针内存模型混合实战

//二级指针内存模型混合实战 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //将内存模型①和内存模型②的数据拷贝到内存模型③ char ** threemodel(char **pin1,int num1,char (*pin2)[20],int num2,char **pin3,int *pnum3){ if (pin1==NULL

C二级指针内存模型一

#include <stdio.h> #include <stdlib.h> #include <string.h> /* 二级指针的第一种内存模型 */ //打印字符串数组 int printArray(char **arrayStr,int num) {     int i = 0;     for (i=0; i<num; i++)     {         printf("%s \n",arrayStr[i]);     }     

C二级指针内存模型二

#include <stdio.h> #include <stdlib.h> #include <string.h> /* 二级指针的第二种内存模型 */ //打印字符串数组 int printArray(char arrayStr[10][30],int num) {     int i = 0;     for (i=0; i<num; i++)     {         printf("%s \n",arrayStr[i]);