C 将指针传递给动态数组
将指针传递给动态数组是否正确?它会起作用吗?如果没有,解释原因;如果有,也解释原因。多谢各位C 将指针传递给动态数组,c,C,将指针传递给动态数组是否正确?它会起作用吗?如果没有,解释原因;如果有,也解释原因。多谢各位 struct record { char * community_name; double data[10]; double crimes_per_pop; }; void allocate_struct_array(struct record *** r); int main() { /* allocating pointer to an array of poin
struct record
{
char * community_name;
double data[10];
double crimes_per_pop;
};
void allocate_struct_array(struct record *** r);
int main()
{
/* allocating pointer to an array of pointers */
struct record ** r;
/* passing its address to a function */
allocate_struct_array( &(**r) );
}
/* function gets an address */
void allocate_struct_array(struct record *** r)
{
...
}
我试图做的是分配一个指针数组,其中每个指针指向结构记录。函数假设只使用指向r的指针分配这个数组,r在main中声明。正在使用此代码,但无法使其正常工作 我不知道您想做什么,但至少您有一个编程错误
allocate_struct_array( &(**r) );
需要-
allocate_struct_array(&r);
在函数界面中,您只需要一个双指针
struct record**r
,而不需要三个指针
数组可以用结构记录*数组来表示;所以指向它的指针是struct record**ptr\u to_array
struct record
{
char * community_name;
double data[10];
double crimes_per_pop;
};
void allocate_struct_array(struct record **r);
int main()
{
struct record *r;
allocate_struct_array(&r);
}
void allocate_struct_array(struct record **r)
{
*r = malloc(23 * sizeof(struct record));
...
}
使用&array
调用函数
struct record
{
char * community_name;
double data[10];
double crimes_per_pop;
};
void allocate_struct_array(struct record **r);
int main()
{
struct record *r;
allocate_struct_array(&r);
}
void allocate_struct_array(struct record **r)
{
*r = malloc(23 * sizeof(struct record));
...
}
我不知道代码片段与这个问题有什么关系。我也不知道这个问题是什么意思。对@AndrewMarshall:是的,我试过了。对@OliCharlesworth:问题是容易-如何让它工作?如果不将changind struct record**r更改为struct record*r?除非处理二维数组,否则肯定不需要三重指针。@moshbear:您是指三维数组:)