質問するログイン新規登録

回答編集履歴

2

追加

2017/01/24 08:13

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -20,4 +20,21 @@
20
20
    char **p = (char **)(*q)[1];
21
21
  printf("%s \n",p);
22
22
 
23
- ```
23
+ ```
24
+
25
+ int (*arp)[10];arp1は、intの配列(要素10)へのポインタなので、代入の場合キャスト(int (*)[10]) intの配列(要素数10)でポインタに変換する。
26
+
27
+ ```c
28
+ int main() {
29
+
30
+ char ii[4] = "GHYU";
31
+ char *qq = ii;
32
+ char **pp = &qq;
33
+ int array[4][10]={{1,2,3,4,5,6,7,8,9,0},{10,11,12,13,14,15,16,17,18,19}};
34
+ int (*arp)[4][10] = (int (*)[4][10])array;
35
+ printf("%d \n", (*arp)[0][5]);
36
+ }
37
+
38
+ ```
39
+
40
+ 実は[この方のページ](http://kmaebashi.com/programmer/pointer.html) を参考とさせて頂いています。

1

追加

2017/01/24 08:13

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -17,4 +17,7 @@
17
17
  q = &buf;
18
18
  printf("%s \n",(*q)[1]);
19
19
 
20
+   char **p = (char **)(*q)[1];
21
+ printf("%s \n",p);
22
+
20
23
  ```