将数组分配给C中的函数指针参数
发布时间:2020-12-16 09:55:03 所属栏目:百科 来源:网络整理
导读:我在函数调用之前声明了指针,并希望在执行函数时获取数组.我按照回答 here的问题获得了以下代码 double *x;double *y;myfunction(1.0,x,y);printf("x[0] = %1.1fn",x[0] ); 我的功能在哪里 void myfunction(double data,double **x,double **y){ /* Some co
我在函数调用之前声明了指针,并希望在执行函数时获取数组.我按照回答
here的问题获得了以下代码
double *x; double *y; myfunction(1.0,&x,&y); printf("x[0] = %1.1fn",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; 有人能指出我应该这样做的确切方式吗? 解决方法
替换* x [k] = k; (* x)[k] = k;或更好地使用如下所示
int *xa = *x; xa[k] = k ; []绑定比C Operator precedence table中的*更严重导致故障. 你期望:(* x)[k] Live example (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |