Size: a a a

2021 February 19

A

Anastasia in supapro.cxx
не, без точки ок
источник

D

Danya in supapro.cxx
Хз хз
источник

LA

Liber Azerate in supapro.cxx
Danya
Хз хз
Это же Си
источник

LA

Liber Azerate in supapro.cxx
Danya
.[0]
В С++ это вообще не работает
источник

D

Danya in supapro.cxx
Liber Azerate
Это же Си
Поэтому и хз
источник

A

Anastasia in supapro.cxx
источник

D

Danya in supapro.cxx
Liber Azerate
В С++ это вообще не работает
Я в курсе, спасибо
источник

A

Anastasia in supapro.cxx
да вроде работает норм😂
источник

LA

Liber Azerate in supapro.cxx
Danya
Я в курсе, спасибо
Ну выглядело так, что не очень :)
источник

О

Олександр in supapro.cxx
Anastasia
да вроде работает норм😂
Спасибочки❤️
источник

IZ

Ilia Zviagin in supapro.cxx
Dmitry Shulga
Здравствуйте, есть вопрос: можно ли иначе проверить на валидность указатель? вроде бы обычная проверка в итоге пропускает ошибку.
Объект proxy в том потоке, судя по отладчику, валиден, его удаления не производится ни до, ни после - почему же тогда proxy->type может крашить? Спасибо.
Есть структура:
struct proxyItem{
   proxyItem();
   proxyItem(QString, QString, QString, QString, QString);
   proxyItem(const proxyItem&);
   QString ip, port, type, user, pass;

   bool operator==(const proxyItem&)const;
};

Есть функция, которая редко, но крашит, видимо на этапе proxy->type+":"
QString NetworkModel::proxyToString(proxyItem *proxy, bool flag) const
{
   QString result;
   if(proxy){
       result = (flag)?"":proxy->type+":";    
       result += proxy->ip + ":" + proxy->port + ":" + proxy->user + ":" + proxy->pass;
   }
   return result;
}

Конкретно последняя точка была в QString t(s1):
inline QT_ASCII_CAST_WARN const QString operator+(const QString &s1, const char *s2)
{ QString t(s1); t += QString::fromUtf8(s2); return t; }

Кусок стека:
  Qt5Core.dll!QString::QString(const QString & other)Строка 525  C++  Символы загружены.
>  app.exe!operator+(const QString & s1, const char * s2=0x00d21964)Строка 1534  C++  Символы загружены.
  app.exe!NetworkModel::proxyToString(proxyItem * proxy=0x05f989d8)Строка 456  C++  Символы загружены.
  app.exe!NetworkModel::data(const QModelIndex & index={...}, int role=0)Строка 38  C++  Символы загружены.
Проверить указатель на валидность невозможно. Есть только одно значение указателя, гарантированно невалидное — nullptr
источник

IZ

Ilia Zviagin in supapro.cxx
Dmitry Shulga
Здравствуйте, есть вопрос: можно ли иначе проверить на валидность указатель? вроде бы обычная проверка в итоге пропускает ошибку.
Объект proxy в том потоке, судя по отладчику, валиден, его удаления не производится ни до, ни после - почему же тогда proxy->type может крашить? Спасибо.
Есть структура:
struct proxyItem{
   proxyItem();
   proxyItem(QString, QString, QString, QString, QString);
   proxyItem(const proxyItem&);
   QString ip, port, type, user, pass;

   bool operator==(const proxyItem&)const;
};

Есть функция, которая редко, но крашит, видимо на этапе proxy->type+":"
QString NetworkModel::proxyToString(proxyItem *proxy, bool flag) const
{
   QString result;
   if(proxy){
       result = (flag)?"":proxy->type+":";    
       result += proxy->ip + ":" + proxy->port + ":" + proxy->user + ":" + proxy->pass;
   }
   return result;
}

Конкретно последняя точка была в QString t(s1):
inline QT_ASCII_CAST_WARN const QString operator+(const QString &s1, const char *s2)
{ QString t(s1); t += QString::fromUtf8(s2); return t; }

Кусок стека:
  Qt5Core.dll!QString::QString(const QString & other)Строка 525  C++  Символы загружены.
>  app.exe!operator+(const QString & s1, const char * s2=0x00d21964)Строка 1534  C++  Символы загружены.
  app.exe!NetworkModel::proxyToString(proxyItem * proxy=0x05f989d8)Строка 456  C++  Символы загружены.
  app.exe!NetworkModel::data(const QModelIndex & index={...}, int role=0)Строка 38  C++  Символы загружены.
А чё у тебя все переменные — STRING ?
источник

DS

Dmitry Shulga in supapro.cxx
Ilia Zviagin
А чё у тебя все переменные — STRING ?
QString
источник

Т8

Т-34 85 in supapro.cxx
Ilia Zviagin
А чё у тебя все переменные — STRING ?
what's wrong?
источник

CK

Charlotte Karlos in supapro.cxx
Charlotte Karlos
У меня есть метод backward, задача которого - смещение массива влево/назад. Он принимает один аргумент типа int в качестве смещения (на 1, 2, 3 или другое количество элементов). Так же, я добавил для него перегрузку, которая не принимает никаких параметров и просто делает backward(1), то есть просто для удобства. Но, когда я вызываю метод backward(), происходит нечто, что ломает работу программы. В то время, как вызов backward(1) не приносит никаких проблем. Почему? Ведь перегрузка не делает ничего, кроме как вызывает основной метод.

template <typename T>
void row<T>::backward(int iOffset)
{
 for (int i = 0; i < iOffset; ++i)
 {
   T temp = this -> arr[0];
   for (int j = 1; j < this -> iLen; ++j)
     this -> arr[j - 1] = this -> arr[j];
   this -> arr[this -> iLen - 1] = temp;
 }
}

template <typename T>
void row<T>::backward()
{
 this -> backward(1);
}
В итоге решил проблему. В перегрузке backward вызвал базовый метод, но в качестве аргумента передал инициализированную переменную:

```
template <typename T>
void row<T>::backward()
{
 int iOffset = 1;
 this -> backward(iOffset);
}
```

Очень странно и не понятно, почему в случае передачи "голой" 1-ки у меня всё ломалось..
источник

C

Chuvi in supapro.cxx
Ilia Zviagin
Проверить указатель на валидность невозможно. Есть только одно значение указателя, гарантированно невалидное — nullptr
Напомни, пожалуйста, то что nullptr - это гарантированно невалидное состояние - сказано где-то в стандарте?

(Не сарказм. Просто по моей логике 0 - вполне валидный адрес, если мы живём в "реальном режиме" на голом железе)
источник

LA

Liber Azerate in supapro.cxx
Chuvi
Напомни, пожалуйста, то что nullptr - это гарантированно невалидное состояние - сказано где-то в стандарте?

(Не сарказм. Просто по моей логике 0 - вполне валидный адрес, если мы живём в "реальном режиме" на голом железе)
По стандарту nullptr – одно из возможных, отдельное значение указателя. Невалидное тоже стоит особняком
источник

LA

Liber Azerate in supapro.cxx
В общем, nullptr вполне валиден
источник

AM

Alex Menzfolder in supapro.cxx
Какая книга в приоритете является лучшей относительно 17-го стандарта на данный момент?

Яцек с его кулинарными рецептами или О`Двайр с его Осваиванием?
источник

LA

Liber Azerate in supapro.cxx
Alex Menzfolder
Какая книга в приоритете является лучшей относительно 17-го стандарта на данный момент?

Яцек с его кулинарными рецептами или О`Двайр с его Осваиванием?
Яцек – это ведь про STL? Есть ещё Вандевурд по самому языку. Впрочем, он и по STL есть, емнип
источник