Как «повторно объявить» указатель строки, который указывает на строку? - PullRequest
0 голосов
/ 02 июня 2018

Я использую Arduino с кучей библиотек, поэтому он будет слишком кластеризован, чтобы размещать здесь весь код.Точки, которые ссылаются на строковый указатель:

char* entrada;  //global strings without assigned value declared here 
char* entrada2; //

Позже, в цикле void, который является основной функцией:

entrada = "some lots of text written here";  //assigning value to the string
...
while (1) { 
funcao();  //calls in for a function, which can't have parameters for an unrelated problem
}

В функции я изменю значениев строке, но не хочу терять свое первоначальное значение, поэтому я назначаю его содержимое другому

void funcao() {
  char *texto = entrada;
  int tamanho = strlen(texto);
  int rtn_ctrl =1;
  ...
  do {
    for(int i=1; i<=tamanho; i++){  //moves every char in n to n-1
      texto[i-1] = texto[i];
    }
    texto[tamanho - rtn_ctrl] ='\0';  //null in the last position of the string
    ...
    rtn_ctrl++;
  } while (rtn_ctrl<=tamanho-(8);  //by the end of this loop, many positions of the string will be '\0';
 return 0;
}

Функция выполняется правильно при первом выполнении.Однако, когда я вызываю его снова в главном цикле, строковые значения, которые должны быть повторно объявлены в функции, не сбрасываются обратно в «entrada».То есть все его позиции по-прежнему '\ 0'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...