在C语言中为函数指针参数赋值数组
我在函数调用之前声明指针,并希望在函数执行时获取数组。我按照回答的问题获取以下代码在C语言中为函数指针参数赋值数组,c,arrays,pointers,C,Arrays,Pointers,我在函数调用之前声明指针,并希望在函数执行时获取数组。我按照回答的问题获取以下代码 double *x; double *y; myfunction(1.0,&x,&y); printf("x[0] = %1.1f\n",x[0] ); myfunction在哪里 void myfunction(double data, double **x, double **y){ /* Some code */ int calculated_size = 10;
double *x;
double *y;
myfunction(1.0,&x,&y);
printf("x[0] = %1.1f\n",x[0] );
myfunction在哪里
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代码>与(*x)[k]=k代码>或更好地使用,如下所示
int *xa = *x;
xa[k] = k ;
[]
导致故障的绑定比*
更紧
您期望:(*x)[k]
但是你会得到:*(x[k])
你也可以做*(*x+k)=k
和*(*y+k)=k
作为另一种语法。太棒了!让我抓狂我找了这么久的错误。。。非常感谢。
int *xa = *x;
xa[k] = k ;