ちょっとわかりにくいんですが・・・
C
1#define SIZEY 64 /* 行数 */ 2#define SIZEX 8 /* 1行あたりの文字数 */ 3 4int main() 5{ 6 char** arr; 7 int x, y; 8 9 const char* test = "test1"; 10 char tmp[8] = { 0 }; 11 12 arr = malloc(sizeof(char *) * SIZEY); 13 for (y = 0; y < SIZEY; y++) 14 { 15 arr[y] = malloc(sizeof(char)* SIZEX); 16 // calloc(SIZEX, sizeof(char)); 17 } 18・・・
ポインタのポインタの普通の動的確保の例です。
上記のものは行と列の両方が動的に確保されていますが・・・・
これを列は配列(動的確保)、行はポインタ
つまり・・・
char **ar -----> char *ar[N]
Nを動的に確保するのです。
C
1char** arr; 2arr = malloc(sizeof(char *) * N);
これだけで終わり・・・かな・・・・
しかしこの場合、"ポインタが配列"のように並んでいるので、
arr[0] = "DESTINY!"; こんなことが出来るように思えます。
やっていいですかね??
「列は配列(動的確保)、行はポインタ」のように確保すると、アクセスの時とfree()の時のやり方が分からなくなります。
どなた教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/22 12:33
2017/01/22 12:38
2017/01/22 12:45
2017/01/22 13:02