【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tensorflow2.2_实现Resnet34_花的识别[通俗易懂]

    tensorflow2.2_实现Resnet34_花的识别[通俗易懂]残差块    Resnet是由许多残差块组成的,而残差块可以解决网络越深,效果越差的问题。    残差块的结构如下图所示。其中:weightlayer表示卷积层,用于特征提取。F(x)F(x)F(x)表示经过两层卷积得到的结果。xxx表示恒等映射。F(x)+xF(x)+xF(x)+x表示经过两层卷积后与之前的卷积层进行结合。所以F(x)F(x)F(x)和xxx代表的是相同的信号。作用:将浅层网络的信号递给深层网络,使网络得到更好的结果。批量归一化(BatchNormaliz

    2022年9月28日
    3
  • loadrunner11中文版激活成功教程文档+录制脚本(图/文)「建议收藏」

    loadrunner11中文版激活成功教程文档+录制脚本(图/文)「建议收藏」LoadRunner11安装1.Loadrunner11下载链接:https://pan.baidu.com/s/15Svt3ktg2Tq5QVslpQcXKA密码:mtxh   2.点击安装文件中的【setup】打开安装文件中,本次安装【LoadRunner完整安装程序】,若需要仅安装LoadGenerator等则根据实际需要进行选择。点击后会弹出重启电脑的提示信息。建议点击【是(Y)】之后…

    2022年7月22日
    15
  • memwatch

    memwatch一、简介memwatch可以跟踪程序中的内存泄漏和错误,能检测双重释放(double-free)、错误释放(erroneousfree)、没有释放的内存(unfreedmemory)、溢出(Ov

    2022年7月4日
    39
  • c语言offsetof_c语言宏定义比较大小

    c语言offsetof_c语言宏定义比较大小根据一个已经分配空间的结构体指针a中的某个成员b的地址,来获取该结构体指针地址

    2022年8月22日
    8
  • UFT12的破解方法和UFT11.5一致

    UFT12的破解方法和UFT11.5一致UFT12的破解方法和UFT11.5一致,不能永久破解,只能试用30天后重新破解。 方法:1.删除C:\ProgramData隐藏目录下的SafeNetSentinel文件夹2.运行QTP安装目录下的bin\instdemo.exe3.重新运行QTP/UFT12后即可恢复30天试用

    2022年5月8日
    127
  • NOIP2008_2012年12月16号农历是

    NOIP2008_2012年12月16号农历是NOIP2012DAY1T1Vigenère密码纯模拟#include<bits/stdc++.h>chara[105],b[1005],ans[1005];intlen1,len2,h=1,p;intc[105];usingnamespacestd;intmain(){// freopen(“vigenere.in”,”r”,stdin); …

    2022年8月22日
    7

发表回复

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

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