[解決済み] C言語の**はどういう意味ですか?
2022-03-14 07:21:46
質問
サンプルはこちら
C
のプログラムを理解しようとしています。以下はソースコードから関数を抜粋したものです。
double** Make2DDoubleArray(int arraySizeX, int arraySizeY)
{
double** theArray;
theArray = (double**) malloc(arraySizeX*sizeof(double*));
int i = 0;
for (i = 0; i < arraySizeX; i++)
theArray[i] = (double*) malloc(arraySizeY*sizeof(double));
return theArray;
}
私の疑問は、この
**
を返します。私は、この
*
は、一般的に
pointer
. にも使われることがありますね。
dereference
ポインタを指定します。
このことから、私は
double**
は、基本的に参照のデリファレンスであるため、ダブル値である。私の考え方は正しいのでしょうか?もしそうでないなら、どなたか
**
この例では?
どのように解決するのですか?
この場合
double
はdouble型の変数を意味します。
double*
は double 変数へのポインタを意味します。
double**
は、ダブル変数へのポインタへのポインタを意味します。
投稿された関数の場合、doubleの2次元配列のようなものを作成するために使用されます。つまり、ダブルポインタの配列へのポインタがあり、そのポインタの各々がポインタの配列を指しています。
関連
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] ポインタの「デリファレンス」とはどういう意味ですか?
-
[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?
-
[解決済み] C 言語の配列へのポインタ/ポインタの配列の曖昧さ解消
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
Solve Dev-c++ [エラー] 'for' ループの初期宣言は、C99 または C11 モードでのみ許可されます。
-
initializer element is not constant "というエラーが表示されるのですが?
-
C 言語のポインタ配列のポインタ型、ポインタに値を割り当てるために配列名を使用、コンパイル時の警告:互換性のないポインタ型からの初期化
-
[解決済み] mallocで文字列を確保する
-
[解決済み] Windows用Cコンパイラ?[クローズド]
-
[解決済み] Linux Socket write() によるBad File Descriptor C
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] while ( !feof (file) ) 」は、なぜいつも間違っているのですか?