配列があり、その内容を繰り返して新しい配列を準備する必要があります。これを複数回行う必要があります。内部ループ内でデータを使い終わったら、古いデータを保持する必要はありません。
基本的に:
double array[dim];
double temparray[dim];
/*initialise array*/
for(...){
for(...){
/*replace contents of temparray based on contents from array*/
}
array = temparray;
}
ただし、このコードは壊れています。
error: assignment to expression with array type
array = temparray;
^
何か案は?
配列を毎回コピーする代わりに、いくつかのヘルパーポインターを使用して、それらの値を交換できます。
したがって、私があなたの意図を理解している場合は、次のように書くことができます。
#include <stdio.h>
void swap_dptr(double **a, double **b)
{
double *tmp = *a;
*a = *b;
*b = tmp;
}
#define dim 5
int main(void) {
double a[dim];
double b[dim] = {9, 8, 7, 6, 5};
double *pa = a;
double *pb = b;
for (int i = 0; i < 10; ++i)
{
for (int j = 0; j < dim; ++j)
{
pa[j] = 1.0 - 0.5 * pb[j];
printf("%10.6f", pa[j]);
}
puts("");
swap_dptr(&pa, &pb);
}
return 0;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加