Использование strncpy вместо strcpy обычно безопаснее, но здесь вы каждый раз выделяете необходимый объем памяти, необходимый для хранения inPoint в mPoint, поэтому я не вижу смысла. Максимальная длина строки, которую вы можете сохранить в mPoint, ограничена объемом памяти, которую можно разместить.
Добавить : вы можете realloc
как предложено, и, скорее всего, вы можете добавить проверку длины, чтобы избежать перераспределения, если строка короче; таким образом, mPoint всегда может содержать строки меньше самой длинной из встреченных строк или равную:
// somewhere altogether with mPoints
size_t mPointsCurrenStorage = INITVAL;
// e.g. INITVAL is 256, and you pre-malloc-ate mPoints to 256 chars
// ... in the func
size_t cl = strlen(inPoints);
if ( cl >= mPointsCurrentStorage ) {
mPoints = realloc(mPoints, cl+1);
mPointsCurrentStorage = cl+1;
}
strcpy(mPoints, inPoints);
таким образом, хранилище только растет ...