VS2022のC++のコンパイルエラーに関する質問です。 Q1)下記のA,B,Cの各エラーを生成し、正しいコードを お教え頂けますと大変有難いです。 ========== // ConsoleAppWavelet.cpp #include <stdio.h> /* printf, scanf, NULL */ #include <stdlib.h> /* calloc, exit, free */ #include <string.h> /* memset */ int main() { int len = 32; const int lev = 4, f = 2; double x[len]; //<--A //C2131 式は定数に評価されませんでした double sq2 = 1.41421356 / 2; double g[f] = { sq2,-sq2 }; double h[f] = { sq2, sq2 }; for (int i = 0; i < len; i++) x[i] = i; double* y = calloc(len, sizeof(double)); // //<--B //E0144 型 "void *" の値を使用して型 "double *" のエンティティを初期化することはできません //C2440初期化中': 'void *' から 'double *' に変換できません。 double* t = calloc(len, sizeof(double)); // //<--C //C2440 '初期化中': 'void *' から 'double *' に変換できません。 memcpy(t, x, len * sizeof(double)); // copy x to tmp for (int i = 0; i < lev; i++) { // level counter i memset(y, 0, len * sizeof(double)); int len2 = len / 2; for (int j = 0; j < len2; j++) for (int k = 0; k < f; k++) { y[j] += t[2 * j + k] * h[k]; y[j + len2] += t[2 * j + k] * g[k]; } len = len2; memcpy(t, y, len * sizeof(double)); // copy approximation to t } for (int i = 0; i < 32; i++) printf("%d %f %f¥n", i, x[i], y[i]); free(y); free(t); } ========== 以上、宜しくお願いします。
C言語関連