【C++】动态开辟二维数组

【C++】动态开辟二维数组

大家好,又见面了,我是全栈君。




二维数组在内存中的分配例如以下:


【C++】动态开辟二维数组


C方式呈现:


<span style="font-size:18px;">
#include <iostream>  
using namespace std;  
  
#define ROW 3  
#define COL 4  
  
  
void main()  
{  
    int **p = (int **)malloc(sizeof(int*)*ROW);  
    for(int i=0; i<ROW; ++i)  
    {  
        p[i] = (int *)malloc(sizeof(int) * COL);  
    }  
  
    for(i=0; i<ROW; ++i)  
    {  
        for(int j=0; j<COL; ++j)  
        {  
            p[i][j] = i+j;  
        }  
    }  
  
    for(i=0; i<ROW; ++i)  
    {  
        for(int j=0; j<COL; ++j)  
        {  
            cout<<p[i][j]<<" ";  
        }  
        cout<<endl;  
    }  
  
    for(i=0; i<ROW; ++i)  
    {  
        free(p[i]);   //delete []p[i]  
    }  
    free(p);          //delete []p;  
  
} 
 </span>


C++:


注意这里使用的列优先方式:

<span style="font-size:18px;">
#include<iostream>  
using namespace std;  
  
#define ROW 3  
#define COL 4  
  
void main()  
{  
    int(*p)[COL] = new int[ROW][COL];  
    for(int i=0; i<ROW; ++i)  
    {  
        for(int j=0; j<COL; ++j)  
        {  
            p[i][j] = i+j;  
        }  
    }  
  
    for(i=0; i<ROW; ++i)  
    {  
        for(int j=0; j<COL; ++j)  
        {  
            cout<<p[i][j]<<" ";  
        }  
        cout<<endl;  
    }  
    delete []p;  
}
</span>



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116522.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大秦帝国之崛起接下来是什么_大秦帝国之崛起怎么样

    大秦帝国之崛起接下来是什么_大秦帝国之崛起怎么样

    2022年9月23日
    3
  • ExaGrid获得+73的净推荐值

    ExaGrid获得+73的净推荐值根据NPS标准,此分数值被归为“优秀”马萨诸塞州韦斯特伯鲁–(美国商业资讯)–备份用超融合二级存储器领先供应商ExaGrid®今日宣布,在近日开展的净推荐值(NPS)调查中,该公司的NPS为+73。NPS客户忠诚度指标用于测评现有客户向同行推荐供应商产品或服务的可能性。得到的NPS分数可能低至-100或高达+100。ExaGrid的大多数竞争对手的NPS介于+10和+20之间,而Exa…

    2022年6月6日
    31
  • linux ptrace函数

    linux ptrace函数【ptrace系统调用】功能描述:提供父进程观察和控制另一个进程执行的机制,同时提供查询和修改另一进程的核心影像与寄存器的能力。主要用于执行断点调试和系统调用跟踪。父进程可通过调用fork,接着指定所产生的子进程的PTRACE_TRACEME行为,最后使用exec等操作来初始化一个进程跟踪。可替代的做法是,父进程通过PTRACE_ATTACH请求跟踪一个现存进程的执行。当子进程

    2025年6月14日
    2
  • mysql navicat 15 激活码【2021免费激活】

    (mysql navicat 15 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1S…

    2022年3月27日
    336
  • Nuke Python脚本读取文件渲染所需要的分辨率

    Nuke Python脚本读取文件渲染所需要的分辨率

    2021年9月8日
    77
  • checkbox选中和不选中的值_设置checkbox选中状态

    checkbox选中和不选中的值_设置checkbox选中状态1.设置选中:$(“#hasApply”).prop(“checked”,true);设置不选中:$(“#hasApply”).prop(“checked”,false);或如下方法://$(“#ck”).attr(“checked”,true)//选中//$(“#ck”).attr(“checked”,false)//未选中2.获取选中的状态:varstatus…

    2022年4月20日
    976

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号