У меня есть функция *getText()
, где конечным результатом является массив, который мне нужно вернуть из функции.Насколько я знаю, это невозможно напрямую, поэтому я создал указатель следующим образом:
char *ptr = &plainText[0];
return ptr;
Я все еще плохо знаком с C и не совсем комфортно работать с указателями, поэтомуЯ создал немного кода для преобразования указателя обратно в массив в функции, в которой он мне нужен:
int i;
char plainText[256];
for (i=0; *(getText()+i) == '\0'; i++){
plainText[i] = *(getText()+i);
}
Идея в том, что цикл for будет проходить через строку, на которую указывает указатель, до тех пор, покаон находит конец ('\0'
) и для каждого символа добавляет строку.
Однако, хотя программа компилируется в gcc без ошибок компилятора, она завершается без ошибок времени выполнения, когда попадает в этот сегменткод.
Кто-нибудь может дать мне несколько советов, как заставить это работать?
Джеймс