文字列の配列へのポインタを返す関数

今週の日曜から月曜にかけてのことなんだけど、C言語でちょっとしたプログラムを書くことになり、その中で文字列の配列へのポインタを返す関数を書く必要ができた。char型へのポインタのポインタを返せばいいってのはわかっていたんだけど、どう実装したらいいのかわからなく、いろいろと悩んでしまった。
結果として次のように実装した。

char **get_charPP(int size, int str_len) {
  char **result;
  int i;

  result = (char **)malloc(size * sizeof(char *));
  for (i = 0; i < size; i++) {
    result[i] = (char *)malloc(str_len + 1); // +1 is for '\0'
    create_str(result[i], str_len);
  }

  return result;
}

create_strはresult[i]に長さがstr_len以下の適当な文字列を入れる関数。
ここんとこ、しばらくポインタのポインタを扱うようなプログラムを書いてなかったので、はまってしまった。そもそもC自体最近いじってなく、あまり慣れてないってのもあるからなぁ。もっと勉強しないと。