ループで malloc を使用しないことで、パフォーマンスを改善しようとしています。配列のサイズはほとんど常に同じサイズであるため、スタック変数を使用しようとしており、配列が大きすぎる場合にのみ置き換えます。残念ながら、それは私が得ている動作ではないようです。これが私のコードスニピットです。ここで明らかに間違っていることはありますか。
double *A
if(n>1024){
A = malloc( n * sizeof( *A ) );
if( !A ) {
fprintf( stderr, "Failed to allocate phi in calculate_forces()\n" );
exit( EXIT_FAILURE );
}
}
else{
double a[1024];
A=a;
}