Первая очевидная проблема заключается в следующих строках:
for(i= 0 ; i < number_arr_rows ; i++){
for(j = 0 ; j < arr_string_lenght[j] ; j++){
Вы используете j
для индексации в arr_string_lenght
внутри цикла j
... которое должно быть i
Во-вторых, вы не NUL
завершаете свои строки, поэтому вы не можете сделать это:
printf("%s\n" , created_string_arr[i]);
И вам это не нужно, так как вы все равно зацикливаетесь на каждом элементеи это также обходит проблему, заключающуюся в том, что вы не выделяете достаточно памяти для хранения NUL
в любом случае.Вы можете просто распечатать каждый символ следующим образом:
for(i = 0 ; i < number_arr_rows ; i++) {
for( j = 0 ; j < arr_string_lenght[i] ; j++) {
printf("%c" , created_string_arr[i][j]);
}
printf("\n");
}
Также вы не free
выделяете память.Хорошей практикой является делать это даже в таких простых программах, как эта, чтобы прочно внедрить привычку к более крупным проектам.