[解決済み] 式はポインタからオブジェクトへの型でなければならない
2022-02-24 14:35:26
質問
CUDAで以下のようなコードを持っています。
__global__ void matvec(int *MAT, int *VEC, int *SOL)
{
int bx = blockIdx.x;
int tx = threadIdx.x;
int i = 32*bx+tx;
for (int j = 0; j < X; j++){
SOL[i] = ((MAT[i][j] * VEC[j]) + SOL[i]) % 2;
}
}
問題は、6行目でエラーになることです。私の式はポインタからオブジェクトへの型を持っていなければならないと書いてあります。
どのように解決するのですか?
エラーの原因は、ポインタを2次元配列として扱っていることです。 以下のように定義します。
MAT
として
int *MAT
としてアクセスしますが
MAT[i][j]
.
正しく割り当てられたと仮定して
MAT
に変更します。
MAT[i*X + j]
. あるいは
MAT
として
int **MAT
この場合も、正しく割り当てられたと仮定しています。
(ちなみに、これはCUDAの問題ではなく、単純なC言語の構文エラーです)。
関連
-
[解決済み] エラー: '...'のメンバー '...'が非クラス型である場合のリクエスト
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] std::stringをintに変換するにはどうしたらいいですか?
-
[解決済み] reinterpret_castはいつ使うのか?
-
[解決済み】C++11のラムダ式って何?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】'cout'は型名ではない
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】C++の余分な資格エラー
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++