二维数组的动态分配

C语言

malloc函数

一维数组

int* buf = ( int * )malloc( 10*sizeof( int ));

二维数组

// 定义二维数组的行数和列数
int row = 3;
int col = 4;

// 动态分配一个能存放row个指针的数组,这些指针将分别指向每行的首地址
int** buf = (int**)malloc(row * sizeof(int*));

// 遍历行
for (int i = 0; i < row; i++)
{
    // 为当前行分配col个整数大小的内存空间
    // 每次循环都为一行分配内存,使得buf[i]指向这一行数据的起始位置
    buf[i] = (int*)malloc(col * sizeof(int));
}

C++语言

new

一维数组

// 动态分配一个长度为10的整型数组

int* buf = new int[10];

// 动态分配一个单独的整数值,并将其初始化为10

// 注意:这将分配一个整数,而非数组

int* singleBuf = new int(10);

二维数组

// 动态分配一个指针数组,该数组将存放3个指向int类型的指针。
// 每个指针后续将指向一个包含4个int元素的数组,从而构成一个3x4的二维数组。
int** buf = new int* [3];

// 遍历从0到2(共3次),为数组的每一行分配内存。
// 对于数组的每一行,new操作分配一个大小为4的int型数组。
// buf[i]存储新分配的内存地址,这样buf就形成了一个二维数组的结构。
for (int i = 0; i < 3; i++) {
    buf[i] = new int[4];
    // 注意:这里没有直接对buf[i][j]进行初始化,
    // 如果需要初始化每个元素,可以在内部添加另一个循环来实现。
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值