Just did a test with this:
(defun strLenTest (/ astr)
(defun makeFirstString (/ str a)
(setq a 65 str "")
(repeat 1024
(setq str (strcat str (chr a))
a (cond ((<= a 122) (1+ a))(65)))
)
str
)
(setq astr (makeFirstString))
(while (not (vl-catch-all-error-p astr))
(setq astr (vl-catch-all-apply 'strcat (list astr astr)))
(princ (strlen astr))(terpri)
)
)
It got to make a string with 268,435,456 characters and then ran into an access violation when trying to concatenate two times 268,435,456 characters.