因此,我正在處理我的任務,並且卡住了一段代碼。返回對象類型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