我在函数调用之前声明指针,并希望在函数执行时获得数组。
double *x;
double *y;
myfunction(1.0,&x,&y);
printf("x[0] = %1.1f\n",x[0] );
我的函数是
void myfunction(double data, double **x, double **y){
/* Some code */
int calculated_size = 10;
*x = malloc(calculated_size*sizeof(double));
*y = malloc(calculated_size*sizeof(double));
int k;
for (k = 0;k < calculated_size; k++)
{
*x[k] = k ;
*y[k] = k ;
}
}
一旦它试图分配
*x[k] = k;
有人能指出我应该怎么做吗?
1条答案
按热度按时间mo49yndu1#
将
*x[k] = k ;
替换为(*x)[k] = k ;
或更好的用法,如下所示在C运算符优先级表中,
[]
比*
绑定更紧,导致该故障。您期望:
(*x)[k]
但你会得到:
*(x[k])
Live example