将C中的double*转换为double[9]
如果double*只指向一个double,而不是一个数组,我可以转换它 这是我的功能将C中的double*转换为double[9],c,pointers,double,C,Pointers,Double,如果double*只指向一个double,而不是一个数组,我可以转换它 这是我的功能 double fun(double * in){ return *in; } 我的double*in有9个元素,我试图将它们传递给数组out[9] 无法返回数组,需要在函数外部声明: void fun(double *out, double *in, size_t num_items){ int i; for (i = 0; i < num_items; i++) { out[i]
double fun(double * in){
return *in;
}
我的
double*in
有9个元素,我试图将它们传递给数组out[9]
无法返回数组,需要在函数外部声明:
void fun(double *out, double *in, size_t num_items){
int i;
for (i = 0; i < num_items; i++) {
out[i] = in[i];
}
}
// Somewhere else in your code:
double destination[9];
fun(destination, in, 9); // Copy 9 doubles into destination
void fun(双出双入,大小/数量项目){
int i;
对于(i=0;i
#包括
#包括
类型定义结构dbl9{
双数组[9];
}Dbl9;
Dbl9乐趣(双倍*英寸){
Dbl9-ret;
memcpy(ret.array,in,sizeof(ret.array));//不能保证
返回ret;
}
int main(){
双数组[9]={1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0};
Dbl9 Dbl9=fun(数组);
int i;
对于(i=0;我可以请你为你的问题提供更多的细节吗?你的问题是“如何确定指针是指向一个双精度还是一个数组”?也许你应该提到你正在尝试做什么。当然,通过堆栈返回结构是没有效率的,但它最接近返回数组的图像。
#include <stdio.h>
#include <string.h>
typedef struct dbl9 {
double array[9];
} Dbl9;
Dbl9 fun(double *in){
Dbl9 ret;
memcpy(ret.array, in, sizeof(ret.array));//There can be no assurance that <in> the correct
return ret;
}
int main(){
double array[9] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
Dbl9 dbl9= fun(array);
int i;
for(i=0;i<9;++i){
printf("%f\n", dbl9.array[i]);
}
return 0;
}