我试图通过不在循环中使用 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;
}