因此,我正在处理我的任务,并且卡住了一段代码。返回对象类型C
struct image* createImg(unsigned int dim1, unsigned int dim2){
int **a=NULL;
int j;
a=malloc(dim1*sizeof(int*));
for (int i=0;i<dim1;i++)
{
a[i]=malloc(dim2*sizeof(int));
for (j=0;j<dim2;j++)
a[i][j]=0;
}
return a; //error here
//return 0;
}
返回类型是图像对象。我将在此特定函数中计算二维数组的宽度/高度。我怎样才能返回这个值?
这是用C
更新完成:
头文件
struct image{ int **a; };
,我改了一下实施
struct image* createWhiteimg(unsigned int dim1, unsigned int dim2){
struct image img;
img.a = NULL;
// int **a=NULL;
int j;
img.a=malloc(dim1*sizeof(int*));
for (int i=0;i<dim1;i++)
{
img.a[i]=malloc(dim2*sizeof(int));
for (j=0;j<dim2;j++)
img.a[i][j]=0;
}
return &img;
}
请发布图像结构定义。 – synchronizer
由于'struct image *'不是'int **',所以这显然不起作用。你有两个返回'a'的选项,它们都涉及改变函数的返回类型:'int **'或'void *'。不管* *是否合适都取决于你,因为我们没有任何关于'结构图像'的内容,也不知道为什么你会认为指向一个指针的原因与'int **'等价。 – WhozCraig
这是我第一次用C语言编程 – BestGiraffeNigeria