抱歉,我今天大部分时间都在尝试解决可能是简单的指针问题,想知道是否有人可以提供帮助。
我想要一个将数字和数组返回给 main() 的函数,因此需要对其中至少一个使用指针。数组必须在函数内部动态分配。
我试图以简化的形式在下面展示我的最佳尝试。我只是得到“分段错误”。
double my_func(double **ptr);
int main(int argc, char **argv){
double value;
double *a;
value = my_func(&a);
printf("Value is %f array[1] is %f \n", value, a[1]);
return 0;
}
double my_func(double **ptr){
int i;
/* generate an array */
void *memory = malloc(10*sizeof(double));
if (memory == NULL){
printf("ERROR: out of memory\n");
}
*ptr = (double *) memory;
/* Fill the array with some values */
for (i=0;i<10;i++)
{
**(ptr+i) = 42;
}
return 3.14;
}
[这样做的原因是我有一个读取文件的函数,我想将行数和包含文件内容的数组返回给 main()。我希望它动态分配数组,以便程序可以对任何大小的文件进行操作。]
谢谢你的帮助!