The most memory efficient way is the following without a loop:
That is because in the above line, all n copies of the 'red' string are reference copies of each other (like a shared data copy), so the memory footprint is smaller than filling each cell individually with a brand new allocated string in a loop.
Having said that, I strongly suspect that what you are attempting to do is futile. If you change any of the individual 'red' strings downstream in your code you will probably need to allocate brand new cell element variables anyway, so this pre-allocation of 'red' would be useless (actually wastes time) regardless of the methoud you use to create C in the first place (my method or with a loop). The only exceptions would be if you don't plan on altering C at all downstream, or if you plan to operate on each string "in-place" ... i.e., changing the contents of the string directly without changing its length, etc. Can you elaborate on what you intend to do with C downstream in your code?
Best Answer