Бұл әдіс есте сақтаудың бүлінуіне әкелетін функциядан String ма?

Мен нәтижені жарамды деп көрсететін жолды және логиканы қайтаратын функцияны анықтағым келеді. Бұл сияқты:

bool getStringOrTimeout(String *s) {
  ...
  if (timed_out) {
    return false;
  } else {
    *s = String();
    return true;
  }
}

Бұл мәселе еске сақтау проблемасын тудырады ма, себебі жол стекке бөлініп, көлемінен шыққан кезде бөлінеді немесе бұл жақсы?

0
Онда String конструкторын пайдаланудың қажеті жоқ. Сіз оңай айтуға болады: * s = «foo»;
қосылды автор Nick Gammon, көзі

1 жауаптар

Сіз жолды сілтеме арқылы өткізуден жақсысыз, келесідей:

bool getStringOrTimeout(String & s)
{
  if (timed_out)
    return false;
  s = "foo";
  return true;

}

Яғни, шақырушының жолы өзгертіледі. Енді сіз жолға көрсеткішті тастамаңыз.

1
қосылды