struct timevalsC プログラムで 2 つの間の経過時間を出力する関数に 2 つへのポインターを渡そうとしています。ただし、これらのポインターを逆参照しても、nvcc は「式にはクラス型が必要です」というエラーをスローします (これは CUDA プログラムです)。main() からの関連コードは次のとおりです。
struct timeval begin, end;
if (tflag) { HostStartTimer(&begin) };
// CUDA Kernel execution
if (tflag) { HostStopTimer(&begin, &end); }
HostStopTimer() の関数定義:
void HostStopTimer(struct timeval *begin, stuct timeval *end) {
long elapsed;
gettimeofday(end, NULL);
elapsed = ((*end.tv_sec - *begin.tv_sec)*1000000 + *end.tv_usec - *begin.tv_usec);
printf("Host elapsed time: %ldus\n", elapsed);
}
エラーの原因となっている行は、への割り当てelapsedです。C で構造体を使用した経験はあまりなく、構造体へのポインターを関数に渡す経験はあまりないため、エラーの原因がわかりません。