Czy jest możliwe zwracanie tablicy komórek zawierającej jedną instancję w kilku komórkach?

Piszę jakąś funkcję mex i muszę zwrócić ogromną liczbę ciągów znaków.

Robię to w następujący sposób:

  mxArray * array = mxCreateCellMatrix(ARRAY_LEN, 1);
  for (size_t k = 0; k < ARRAY_LEN; ++ k) {
      mxArray *str = mxCreateString("Hello");
      mxSetCell(array, k, str);
  }
  prhs[0] = array;

Ponieważ jednak ciąg ma zawsze tę samą wartość, chciałbym utworzyć tylko jedną jego instancję. lubić

  mxArray * array = mxCreateCellMatrix(ARRAY_LEN, 1);
  mxArray *str = mxCreateString("Hello");

  for (size_t k = 0; k < ARRAY_LEN; ++ k) {
      mxSetCell(array, k, str);
  }
  prhs[0] = array;

Czy to możliwe? Jak zbierający śmieci wie, czy go zwolnić? Dziękuję Ci.

questionAnswers(2)

yourAnswerToTheQuestion