C / C ++で配列へのポインタを使用する必要があるのはなぜですか?

user366312
#include<stdio.h>

#define SIZE 3

int main()
{   
    char intArrayOne[SIZE] = {'A', 'B', 'C'};

    char (*ptrToAnOneDimArray)[SIZE] = &intArrayOne;

    int i = 0;
    for(i=0 ; i<SIZE ; i++)
    {
        printf("%c ", (*ptrToAnOneDimArray)[i]);
    }
}

Output
A B C 

「ptrToAnOneDimArray」(C / C ++での使用法の種類)はいつ使用する必要がありますか?実際の例を教えてください。

このような複雑であいまいなポインタの使用を避けることはできますか?

user529758

たとえば、動的な多次元配列を実装する場合は、次のようにします。

int (*ptrArr)[WIDTH] = malloc(sizeof ptrArr[0] * HEIGHT);

あるはるかに良いより

int **ptrPtr = malloc(sizeof ptrPtr[0] * HEIGHT);
for (size_t i = 0; i < HEIGHT; i++) {
    ptrPtr[i] = malloc(sizeof ptrPtr[0][i] * WIDTH);
}

さまざまな理由で(実際に、メモリ内連続している2D配列を指しているため、必要な割り当てと解放が少なくてすむため、間違える可能性が低くなります)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

配列へのポインタのサイズがCで常に8であるのはなぜですか?

分類Dev

Cでポインターへの参照を*で定義する必要があるのはなぜですか?

分類Dev

Cでは、不完全な型の配列へのポインターの使用を許可する必要がありますか?

分類Dev

C ++で動的2D配列を宣言するときに、ポインターへのポインターを使用するのはなぜですか?

分類Dev

なぜ誰かがC / C ++でトリプルポインタを使用する必要があるのか?

分類Dev

C ++では、なぜポインターのタイプに言及する必要があるのですか?

分類Dev

Cで文字列の配列へのポインタを持つことができるのはなぜですか

分類Dev

なぜこれが機能するのでしょうか:C文字列へのポインタの配列?

分類Dev

なぜC ++では、配列内の項目にアクセスするために配列へのポインターを逆参照する必要がないのですか?

分類Dev

Cでポインターを操作する場合、mallocを使用する必要があるのはいつ、なぜですか?

分類Dev

C#でFieldOffset(0)を使用すると、char配列と文字列のポインターが異なるのはなぜですか?

分類Dev

C ++共分散を利用するために、なぜポインターを返す必要があるのですか?

分類Dev

Cでポインタを初期化する2つの異なる方法があるのはなぜですか

分類Dev

C-ポインタへのポインタが配列へのポインタと同じではないのはなぜですか?

分類Dev

このC ++テンプレートでタイプを指定する必要があるのはなぜですか?

分類Dev

文字列配列を再割り当てできないのに、文字列ポインタをC言語にすることができるのはなぜですか?

分類Dev

SwiftでCスタイルの/ * ... * /コメントを避ける必要があるのはなぜですか?

分類Dev

クラス配列要素がポインタのように動作するのはなぜですか?(C#)

分類Dev

配列へのポインタを使用すると、C ++で「未処理の例外」が発生しますか?

分類Dev

Cでプレーン変数の代わりに参照とポインターを指定する必要があるのはなぜですか

分類Dev

2次元配列。Cで列のサイズを宣言する必要があるのはなぜですか

分類Dev

Cで単純なポインターの代わりにポインターからポインターを使用する必要があるのはなぜですか?

分類Dev

Cが負の配列インデックスをサポートするのはなぜですか?

分類Dev

C ++で使用する前に文字列を初期化する必要があるのはなぜですか?

分類Dev

固定サイズの配列へのポインターのアドレスを、Cのポインターへのポインターを期待する関数に渡せないのはなぜですか?

分類Dev

c文字列内の要素へのポインタが要素だけを返さないのはなぜですか?

分類Dev

Cでポインタの配列へのポインタの配列を定義する方法は?

分類Dev

Cで配列へのポインタを初期化する

分類Dev

Cのconstを指すポインターへのポインターを作成することが違法なのはなぜですか?

Related 関連記事

  1. 1

    配列へのポインタのサイズがCで常に8であるのはなぜですか?

  2. 2

    Cでポインターへの参照を*で定義する必要があるのはなぜですか?

  3. 3

    Cでは、不完全な型の配列へのポインターの使用を許可する必要がありますか?

  4. 4

    C ++で動的2D配列を宣言するときに、ポインターへのポインターを使用するのはなぜですか?

  5. 5

    なぜ誰かがC / C ++でトリプルポインタを使用する必要があるのか?

  6. 6

    C ++では、なぜポインターのタイプに言及する必要があるのですか?

  7. 7

    Cで文字列の配列へのポインタを持つことができるのはなぜですか

  8. 8

    なぜこれが機能するのでしょうか:C文字列へのポインタの配列?

  9. 9

    なぜC ++では、配列内の項目にアクセスするために配列へのポインターを逆参照する必要がないのですか?

  10. 10

    Cでポインターを操作する場合、mallocを使用する必要があるのはいつ、なぜですか?

  11. 11

    C#でFieldOffset(0)を使用すると、char配列と文字列のポインターが異なるのはなぜですか?

  12. 12

    C ++共分散を利用するために、なぜポインターを返す必要があるのですか?

  13. 13

    Cでポインタを初期化する2つの異なる方法があるのはなぜですか

  14. 14

    C-ポインタへのポインタが配列へのポインタと同じではないのはなぜですか?

  15. 15

    このC ++テンプレートでタイプを指定する必要があるのはなぜですか?

  16. 16

    文字列配列を再割り当てできないのに、文字列ポインタをC言語にすることができるのはなぜですか?

  17. 17

    SwiftでCスタイルの/ * ... * /コメントを避ける必要があるのはなぜですか?

  18. 18

    クラス配列要素がポインタのように動作するのはなぜですか?(C#)

  19. 19

    配列へのポインタを使用すると、C ++で「未処理の例外」が発生しますか?

  20. 20

    Cでプレーン変数の代わりに参照とポインターを指定する必要があるのはなぜですか

  21. 21

    2次元配列。Cで列のサイズを宣言する必要があるのはなぜですか

  22. 22

    Cで単純なポインターの代わりにポインターからポインターを使用する必要があるのはなぜですか?

  23. 23

    Cが負の配列インデックスをサポートするのはなぜですか?

  24. 24

    C ++で使用する前に文字列を初期化する必要があるのはなぜですか?

  25. 25

    固定サイズの配列へのポインターのアドレスを、Cのポインターへのポインターを期待する関数に渡せないのはなぜですか?

  26. 26

    c文字列内の要素へのポインタが要素だけを返さないのはなぜですか?

  27. 27

    Cでポインタの配列へのポインタの配列を定義する方法は?

  28. 28

    Cで配列へのポインタを初期化する

  29. 29

    Cのconstを指すポインターへのポインターを作成することが違法なのはなぜですか?

ホットタグ

アーカイブ