Причиной возникновения этой ошибки является то, что вашему методу разрешено читать / записывать до len=20
символов в фиктивный аргумент name
.Ваш строковый литерал меньше этой суммы, и ваш компилятор предупреждает вас об этом.Даже несмотря на то, что он объявлен intent(in)
, вы можете читать вне фактической длины аргумента и вызвать нарушение прав доступа и т. Д.
Возможно, вам следует придерживаться len=*
с фиктивными аргументами и использовать len
или len_trim
при определении количества символов, которые можно читать / записывать.
Или, если вы должны оставить len=20
, вам следует использовать временную переменную, используемую для передачи значений в этот метод.Или что-то более уродливое, например "hello"//repeat(" ", 15)
.