Your c_string
can’t hold a maximum of 20 characters; it holds exactly 20 characters, hence the CE.
You could use Ada.Strings.Bounded
if it’s important to have an upper limit, or Ada.Strings.Unbounded
if you don’t actually care.
In the bounded case, that’d be something like
package B_Strings is new Ada.Strings.Bounded.Generic_Bounded_Length (Max => 20);
type String_Array is array (1 .. 200) of B_Strings.Bounded_String;
and then
Str_A : String_Array;
Str_A (N) := B_Strings.To_Bounded_String (“stringToAssign”);
There’s more in the Ada Wikibook.