#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 ++での使用法の種類)はいつ使用する必要がありますか?実際の例を教えてください。
このような複雑であいまいなポインタの使用を避けることはできますか?
たとえば、動的な多次元配列を実装する場合は、次のようにします。
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]
コメントを追加