2 qq 33929605 qq_33929605 于 2016.04.30 14:00 提问

c++ 大家帮忙看看这个二维动态数组的声明和引用有什么问题吗 30C

Image::Image(unsigned char **m, int h, int w)
{
m=new unsigned char *[h];
for (int x=0;x<h;x++)
{
m[x]=new unsigned char[w];
}
}

void Image::Read(char* ImageName)
{
IplImage* img = cvLoadImage(ImageName, CV_LOAD_IMAGE_GRAYSCALE);
unsigned char *img_data = (unsigned char *)(img->imageData);
int height=img->height;

int width=img->width;

int width_step=img->widthStep;
unsigned char **date;
Image(date,height,width);
int x,y,z=0;

for(x=0;x<height;x++)
{
for(y=0;y<width;y++)
{
date[x][y]=img_data[z];

z++;
}
}

//将一维指针img_data指向的内存中的值写入成员变量二维指针data所指的内存中

//write your code here*/

cvReleaseImage(&img);
}

3个回答

niaonao
niaonao   Rxr 2016.04.30 14:52

Image::Image(unsigned char **m, int h, int w)
Image 怎么继承自己啊

qq_33929605
qq_33929605 Image是一个类,Image(unsigned char **m, int h, int w)是类中的一个构造函数
大约 2 年之前 回复
ArthurJava
ArthurJava   2016.05.01 09:11

Image(date,height,width); 调用构造函数,不如改成分配内存试一试
构造函数 Image::Image(unsigned char **m, int h, int w) 不需 unsigned char **m参数

ZGZ1002
ZGZ1002   2016.05.02 14:50

Image::Image(unsigned char **m, int h, int w) 没有看懂什么意思啊?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
动态创建二维vector数组 C和C++ 及指针与引用的区别
二维vectorvector > ivec(m ,vector(n));    //m*n的二维vector动态创建m*n的二维vector方法一:vector > ivec;ivec.resize(m);for(int i=0;i方法二:vector > ivec;ivec.resize(m,vector(n));动态创建二维数组a[m][n]C语言版:#includeint **a=(int
c++ 二维动态数组初始化及作为参数传递
#include #include using namespace std; typedef double *DoubleArrayPtr; void initialArray(double **a,int d1,int d2); int main() { int i=0,j=0; int d1,d2; cout<<"Input d1 and d2"<<endl; cin>>d
C语言用malloc函数申请二维动态数组
C语言在程序运行中动态的申请及释放内存十分方便
C语言动态申请二维数组【用new函数】
#include<stdio.h>const int m = 10; int i, j;int main() { //动态申请二维数组 //先声明一个指向指针的指针,然后赋予一个指针数组 int **f = new int *[m]; for(i = 0; i < m; i++) f[i] = new int [4]; for(i = 0; i
C++建立动态二维数组
C++建立动态二维数组主要有两种方法: 1.使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组                           int **b=new int*[row];       //分配一个指针数组,将其首地址保存在b中
c语言中二位动态数组
最近在用C解leetcode题目时,碰到一题需要返回一个动态二维数组的头指针,搞了半天才弄好。          用c语言创建二维动态数组有两种方式。 1.     转化为指针数组申请,代码如下。 const int cols = 10; int rows = 10; int(*p)[cols]; p = (int(*)[cols])malloc(rows*cols *sizeof(i
C++中如何正确的开辟一个动态的二维数组
如何定义一个二级指针,看似每个有点C语言基础的人觉得自己都可以很容易完成,但要正确的完成并且说的明白其中道理不见得就那么多。正确的理解数组指针和指针数组是关键。
动态创建二维vector数组
转自:http://hi.baidu.com/studyarea/blog/item/57d1cb6e9570b6d881cb4adf.html二维vectorvector > ivec(m ,vector(n));    //m*n的二维vector动态创建m*n的二维vector方法一:vector > ivec;ivec.resize(m);for(int i=0;i方法二:vector
C语言的二维和三维动态连续数组分配
在某些特殊的场合需要动态的数组分配,比如图像处理领域,这就需要用到malloc 和free这对好基友了本测试纯粹为了学习研究,没有意思去比较C和C++的优劣,或者和其他语言的优劣,因为比起C++,我更喜欢C,因为嵌入式的程序还是用C效率高,虽然编程有点虐心,,,,在图像处理领域,有时需要动态分配一段内存用于存储图像,大家都知道图像在内存中存储形式都是以连续的一维数组的形式存放,故平常使用就分配一维空
C语言声明一维动态数组
#include #include int main() {     int i, n;     printf("Please input a integer n:");     scanf("%d", &n);     int *a = (int *)malloc(n * sizeof(int));     for(i = 0; i     {