Когда вы создаете обычный массив C, он будет существовать только внутри области, в которой вы его создали (в данном случае, функция editStr()
), и будет уничтожен, как только вы вернетесь из этой функции.Следовательно, если вы возвращаете указатель массива, он станет бесполезным, и если вы попытаетесь его использовать, ваша программа, скорее всего, вылетит.
Вместо этого вы должны динамически распределять массивы, используя malloc()
.Его довольно просто использовать:
char *a = (char*) malloc(sizeof(char) * 5);
Это создаст массив из 5 char
с, который вы можете использовать, и даже передадите его между функциями.Однако они не уничтожаются автоматически, когда выпадают из области видимости, поэтому вам нужно уничтожить их вручную, используя free(a)
, когда вы закончите с указателями, иначе вы получите утечку памяти.
См. Также: