Dev*_*vel 5 c double return-value
我可以这样做吗?这会有用吗?
double *vec_subtraction (char *a, char *b, int n)
{
double *result;
int i;
for(i=0; i<n; i++)
result[i] = a[i]-b[i];
return result;
}
Run Code Online (Sandbox Code Playgroud)
然后在主要:
double *vec=vec_substraction(a, b, n);
for(i=1; i<n; i++)
printf("%d", vec[i]);
Run Code Online (Sandbox Code Playgroud)
a和b是具有相同元素数的向量,n是元素数.
Mar*_*iot 11
是的,你可以,但你需要为result某个地方分配内存.
基本上,您可以在内部vec_subtraction或外部分配内存vec_subtraction,如果您在外部分配,则可以静态或动态地执行此操作.
如果你打算在里面分配:
double *vec_subtraction (char *a, char *b, int n) {
double *result = malloc(sizeof(double)*n);
int i;
for(i=0; i<n; i++)
result[i] = a[i]-b[i];
return result;
}
Run Code Online (Sandbox Code Playgroud)
在主要:
double *vec;
// ...
vec = vec_subtraction(a, b, n);
// ...
free(vec);
Run Code Online (Sandbox Code Playgroud)
不要忘记稍后free调用的结果vec_subtraction.
如果您要在外部分配,则需要传入指向内存的指针:
void vec_subtraction (char *a, char *b, int n, double *result) {
int i;
for(i=0; i<n; i++)
result[i] = a[i]-b[i];
}
Run Code Online (Sandbox Code Playgroud)
在主要:
// choose one of:
// double *vec = malloc(sizeof(double)*n);
// double vec[10]; // where 10= n.
vec_subtraction(a, b, n, vec);
// if you used *vec = malloc... remember to call free(vec).
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10525 次 |
| 最近记录: |