搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请教各位大侠,C语言怎么定义一个动态数组
标题:
请教各位大侠,C语言怎么定义一个动态数组
只看楼主
心晴雨亦晴
等 级:
新手上路
帖 子:1
专家分:0
注 册:2015-3-6
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:2
请教各位大侠,C语言怎么定义一个动态数组
小弟做一个opencv项目,需要定义一个二维数组存放读取的图片的灰度值,但是行和列是根据图片大小,通过int width=src->width;的width确定的,请大家帮忙
搜索更多相关主题的帖子:
C语言
图片
动态
项目
C语言
图片
动态
项目
2015-03-06 20:37
code力力
来 自:宜昌
等 级:
职业侠客
威 望:
2
帖 子:215
专家分:338
注 册:2015-1-12
第
2
楼
得分:20
用动态内存分配啊,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;
}
你醒了?快起来敲代码!!
2015-03-07 17:32
code力力
来 自:宜昌
等 级:
职业侠客
威 望:
2
帖 子:215
专家分:338
注 册:2015-1-12
第
3
楼
得分:0
第一次没懂你的意思,现在做成函数,会更灵活。你再用一个函数测图片的宽高,得出宽高值,调用我写的函数,把宽高值发送进去。
# include<stdio.h>
# include <malloc.h>
void test(int row,int col);
int main(void)
{
test(3,2);
return 0;
}
void test(int row,int col)
{
int (*p)[col];
int i,j,t=1;
p=(int (*)[col]) malloc (row*(sizeof(int [col])));
for(i=0;i<row;i++)
for(j=0;j<col;j++)
*(*(p+i)+j)=t++;
for(i=0;i<row;i++)
for(j=0;j<col;j++)
printf("%d\n",*(p[i]+j));
free(p);
}
你醒了?快起来敲代码!!
2015-03-07 17:45
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-442398-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.504475 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved