请教各位大侠,C语言怎么定义一个动态数组
小弟做一个opencv项目,需要定义一个二维数组存放读取的图片的灰度值,但是行和列是根据图片大小,通过int width=src->width;的width确定的,请大家帮忙
用动态内存分配啊,malloc函数。
举个例子。
# include<stdio.h>
# include <malloc.h>
int main(void)
{
int (*p)[2]; //定义一个用来指向二维数组的指针,[ ] 里面的可以根据实际修改,你的二维数组有几列,就是几
int i,j,t=1;
p=(int (*)[2]) malloc (3*(sizeof(int [2]))); //强制转换成int(*)[2]型的指针
// 3 是二维数组的行数。
for(i=0;i<3;i++)
for(j=0;j<2;j++)
*(*(p+i)+j)=t++; //为二维数组内的元素赋值
for(i=0;i<3;i++)
for(j=0;j<2;j++)
printf("%d\n",*(p[i]+j)); //输出
free(p); //释放掉二维数组占得内存
return 0;
}