我在分配指向位于C中的结构中的2d数组的指针时出现问题。代码运行但我收到编译错误,无法理解如何摆脱它。
首先,结构
typedef struct{
double (*cases)[9];
} myStruct;
然后我在我的主程序中声明了myStryct类型的结构和一个数组,并尝试在我的结构中设置指针指向此数组:
myStruct a;
double myArray[5][9] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
}
a.cases = &myArray;
程序运行罚款,我可以通过指针访问元素,但我得到一个编译错误: 警告:从兼容指针类型分配。这有什么问题?
答案 0 :(得分:1)
myStruct a;
double myArray[5][9] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 1, 2, 3, 4, 5, 6, 7, 8},
};
a.cases = &myArray[0];
答案 1 :(得分:0)
问题:
void allocate(int ** universe,int n) // to assign pointer "a" a nXn matrix //
{
universe=(int **) calloc(n,sizeof(int *));
cout<<"work3";
int l;
for(l=0;l<n;l++)
universe[l]=(int *)calloc(n,sizeof(int));
}