我试图返回4个指针,这些指针存储在C函数中的另一个指针中,但出现分段错误。有人知道该怎么做吗?
这就是我尝试执行此操作的方式:
//declaration of 5 pointers (int * ptr0, float * ptr1, ..., int * ptr4)
int * function()
{
int * ptr;
ptr = malloc(sizeof(int)*4);
float * ptr1;
ptr1 = malloc(sizeof(float)*4);
float * ptr2;
ptr2 = malloc(sizeof(float)*4);
float * ptr3;
ptr3 = malloc(sizeof(float)*4);
int * ptr4;
ptr4 = malloc(sizeof(int)*4);
retunr ptr;
}
ptr0 = function();
ptr1 = ptr0[0];
ptr2 = ptr0[1];
//and so on...
好的,我更改了程序,但现在不能再写指针了。我知道这是一个真正的“愚蠢”问题,但我真的不知道。有人可以帮忙吗?
void ** function()
{
void ** ptr;
ptr = (void **)malloc(sizeof(void *)*4);
ptr[0] = malloc(sizeof(float)*4);
ptr[1] = malloc(sizeof(float)*4);
ptr[2] = malloc(sizeof(float)*4);
ptr[3] = malloc(sizeof(int)*4);
return ptr;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句