- ベストアンサー
mallocで char *型の配列を確保したい
char *方の配列を動的確保する必要が出たのですが、 char **array=(char **)malloc((char *) * 10); としてうまくいきません どうすれば確保できるのでしょうか 知っている方がいましたら教えてください ちなみに確保した配列はこの様に使えるようにしたいです strcpy(array[0],"testest");
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
char **array = (char**)malloc(sizeof(char*) * 10); ↑の一行はokだけど、これはアドレスを格納する箱を10個用意するだけですよ。 なので実際に使うときは、箱の中のエリアを確保せねばなりません。 array[0] = (char*)malloc(256); strcpy(array[0], "testtest"); これはarray[1]~array[9]もすべて同じ。 もちろんmallocで確保したメモリはfreeで解放するのも忘れずに。 free(array[0]); ; free(array[9]); free(array);
その他の回答 (1)
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.2
> char **array=(char **)malloc((char *) * 10); No.1のかたが補足されていますが、malloc()の引数の中に sizeofの記述を加えてください。 このように確保したarray[0]~array[9](配列もどき)の領域に対して 実際にどれだけの領域を確保するかも、No.1のかたの 解説どおりです。
お礼
この方法で成功しました 有難うございました