zoukankan      html  css  js  c++  java
  • 二级指针三种内存模型总述

    三种内存模型:
    1指针数组  本质为二级指针
    2二维数组  本质位数组指针
    3手工打造二维内存

    void main51()
    {
      int i = 0;

      //01指针数组
      char* p1[] = {"123","456","789"};

      //02二维数组
      char p2[3][4] = { "123", "456", "789" };

      //03手工二维内存
      char **p3 = (char**)malloc(sizeof(char*) * 3);
      for (i = 0; i < 3; i++)
      {
        p3[i] = (char*)malloc(sizeof(char) * 10);
      }

      printf(" hehhe");
      system("pause");
      return;
    }


     01和03的内存模型是很像的  前者数组内存放在栈中  每个数组元素是指向堆空间的指针
                                                   后者数组内存放在堆中  每个数组元素也是指向堆空间的指针  
     所以 *(p1+1)和 *(p3+1)的步长是一样的  都是向后移一个元素
     而 *(p2+1)移动的步长则是一行

  • 相关阅读:
    python 购物车和三级菜单
    python-装饰器
    day3 python 函数
    day3 python 集合 文件
    two day python基础知识
    python-day 1
    Cordova 环境搭建
    javascript在html直接传值
    JavaScript疑难点
    Javascript创建对象的方法
  • 原文地址:https://www.cnblogs.com/fengxing999/p/10320603.html
Copyright © 2011-2022 走看看