回答編集履歴
5
更に微修正
answer
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
---
|
11
11
|
【追記】
|
12
12
|
rawは3次元配列で、しかも、最下位の次元を可変長にしたいのですか...
|
13
|
-
C/C++ではそれも不可能です。例えば、value[0][1][0]のアドレス
|
13
|
+
C/C++ではそれも不可能です。例えば、value[0][1][0]のアドレスを静的に決定できませんので。
|
14
|
+
静的型付け言語で、変数領域を連続領域に「動的」に割り当てすることは不可能と思います。
|
14
15
|
|
15
16
|
不連続な領域、もしくは、ポインタ経由するような方法でならC/C++も含めて対応できる言語は多いと思いますが、連続領域に直接動的に割り当てることが可能な言語は少ないだろうと思います。
|
4
typo
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
例外的にCではスタック上に確保する場合に限りサポートしているようです。(VLA)
|
5
5
|
gccはそれをもう少し拡張拡張して構造体内の配列を可変長にできるようです([VLAIS](http://cpplover.blogspot.jp/2013/04/llvmclanglinuxgcc.html))が、やはりスタック上に確保した例しか見当たりません。
|
6
6
|
|
7
|
-
旧来からよく使われる長さ
|
7
|
+
旧来からよく使われる長さ1の配列を構造体の最後に配置するテクニックを使うしかないように思います。(ItoTomonoriさんが回答されている方法です。)
|
8
8
|
rawを適切な位置へ配置することはできませんが、C/C++言語は[静的型付け](https://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E5%9E%8B%E4%BB%98%E3%81%91)言語ですので、これは不可能と思います。rawの位置が動的に変化しますので、動的に処理するしかありません。
|
9
9
|
|
10
10
|
---
|
3
補足
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
gccはそれをもう少し拡張拡張して構造体内の配列を可変長にできるようです([VLAIS](http://cpplover.blogspot.jp/2013/04/llvmclanglinuxgcc.html))が、やはりスタック上に確保した例しか見当たりません。
|
6
6
|
|
7
7
|
旧来からよく使われる長さ0の配列を構造体の最後に配置するテクニックを使うしかないように思います。(ItoTomonoriさんが回答されている方法です。)
|
8
|
-
rawを適切な位置へ配置することはできませんが、C/C++言語は
|
8
|
+
rawを適切な位置へ配置することはできませんが、C/C++言語は[静的型付け](https://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E5%9E%8B%E4%BB%98%E3%81%91)言語ですので、これは不可能と思います。rawの位置が動的に変化しますので、動的に処理するしかありません。
|
9
9
|
|
10
10
|
---
|
11
11
|
【追記】
|
2
更に追記
answer
CHANGED
@@ -5,4 +5,11 @@
|
|
5
5
|
gccはそれをもう少し拡張拡張して構造体内の配列を可変長にできるようです([VLAIS](http://cpplover.blogspot.jp/2013/04/llvmclanglinuxgcc.html))が、やはりスタック上に確保した例しか見当たりません。
|
6
6
|
|
7
7
|
旧来からよく使われる長さ0の配列を構造体の最後に配置するテクニックを使うしかないように思います。(ItoTomonoriさんが回答されている方法です。)
|
8
|
-
rawを適切な位置へ配置することはできませんが、C/C++言語は「静的型付けな言語」ですので、これは不可能と思います。rawの位置が動的に変化しますので、動的に処理するしかありません。
|
8
|
+
rawを適切な位置へ配置することはできませんが、C/C++言語は「静的型付けな言語」ですので、これは不可能と思います。rawの位置が動的に変化しますので、動的に処理するしかありません。
|
9
|
+
|
10
|
+
---
|
11
|
+
【追記】
|
12
|
+
rawは3次元配列で、しかも、最下位の次元を可変長にしたいのですか...
|
13
|
+
C/C++ではそれも不可能です。例えば、value[0][1][0]のアドレスが静的に決定できませんので。静的型付け言語では不可能と思います。
|
14
|
+
|
15
|
+
不連続な領域、もしくは、ポインタ経由するような方法でならC/C++も含めて対応できる言語は多いと思いますが、連続領域に直接動的に割り当てることが可能な言語は少ないだろうと思います。
|
1
追記
answer
CHANGED
@@ -4,5 +4,5 @@
|
|
4
4
|
例外的にCではスタック上に確保する場合に限りサポートしているようです。(VLA)
|
5
5
|
gccはそれをもう少し拡張拡張して構造体内の配列を可変長にできるようです([VLAIS](http://cpplover.blogspot.jp/2013/04/llvmclanglinuxgcc.html))が、やはりスタック上に確保した例しか見当たりません。
|
6
6
|
|
7
|
-
旧来からよく使われる長さ0の配列を構造体の最後に配置するテクニックを使うしかないように思います。
|
7
|
+
旧来からよく使われる長さ0の配列を構造体の最後に配置するテクニックを使うしかないように思います。(ItoTomonoriさんが回答されている方法です。)
|
8
8
|
rawを適切な位置へ配置することはできませんが、C/C++言語は「静的型付けな言語」ですので、これは不可能と思います。rawの位置が動的に変化しますので、動的に処理するしかありません。
|