我试图创建一个指向结构的array
的指针,并将它传递给function
,我将在其中更改结构的值。c malloc指向结构数组的指针
可能有人请解释一下我为什么我的代码似乎不能正确地分配为array
的内存的编译版本执行失败的27pixels如果我存储在struct
都integer
变量,而它的工作原理为27pixels如果我只专卖店一个integer
变量?
typedef struct Pixel
{
int label;
int area;
}Pixelmap;
int change_pixel(Pixelmap* pixelmap)
{
for (x = 0; x < dimx*dimy*dimz; x++)
{
pixelmap[x].label = x; /* or malloc and strcpy */
pixelmap[x].area = 1;
printf("%i\n",pixelmap[x].label);
}
return 1;
}
int main()
{
Pixelmap *pm;
pm = malloc(dimx*dimy*dimz * sizeof (struct Pixel));
change_pixel(&pm);
printf("End!\n");
free(pm);
return 0;
}
'change_pixel(&pm);'====>' change_pixel(pm);'把你的编译器警告提高到最高,你应该被告知不兼容的类型 – WhozCraig
也许'change_pixel'应该重命名'set_pixel',因为'malloc'分配的内存未初始化。 –