动态分配内存和以指针声明数组

动态分配内存和释放

int* a = (int *)malloc(number * sizeof(int)); free(a);
  向malloc申请空间的大小是以字节为单位的,返回的结果是void *,要转化为需要的类型

指针表示数组

以二维数组为例

/* 以二重指针创建二维数组 */
#include <iostream>
#include <stdlib.h>
using namespace std;

int main(void)
{
	int ** p=(int **)malloc(2*sizeof(int *)); //声明一个二重指针且分配2个int类型指针大小的空间
	p[0]=(int *)malloc(3*sizeof(int *));//声明指针数组中第一个指针并且分配3个int类型大小的空间
	p[1]=(int *)malloc(3*sizeof(int *));//声明指针数组中第二个指针并且分配3个int类型大小的空间
    
	for(int i;i<2;i++)
	{
		for(int j=0;j<3;j++)
		{
			p[i][j]=(i+1)*(j+1);
			cout<<p[i][j]<<"\t";
		}
		cout<<endl;
	}		
	return 0;
}
/* 以二维数组为二重指针赋值 */
/* one way */
int i[2][3]={{1,2,3},{4,5,6}};	
int *p[2]={i[0],i[1]};
cout<<p[1][2];

/* or */
int i[2][3]={{1,2,3},{4,5,6}};	
int (*p)[3]=i;    
cout<<p[1][2];

/* but cannot */
int i[2][3]={{1,2,3},{4,5,6}};	
int **p=i;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值