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.