<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>C/C++ - Форум программистов и сисадминов Киберфорум</title>
		<link>https://www.cyberforum.ru/</link>
		<description>Форум программистов C++. Обсуждение языка программирования C++, решение задач, программирование и разработка.</description>
		<language>ru</language>
		<lastBuildDate>Sun, 19 Apr 2026 18:38:09 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>C/C++ - Форум программистов и сисадминов Киберфорум</title>
			<link>https://www.cyberforum.ru/</link>
		</image>
		<item>
			<title>Как выборочно определить файла отладочных символов (PDB) ? - C/C++: IDE, инструментарий</title>
			<link>https://www.cyberforum.ru/cpp-ide-tools/thread3222354.html</link>
			<pubDate>Sun, 19 Apr 2026 14:16:22 GMT</pubDate>
			<description>Добрый вечер! 
 
Можно ли при сборке проекта в Visual Studio указать, что для таких-то библиотек не...</description>
			<content:encoded><![CDATA[<div>Добрый вечер!<br />
<br />
Можно ли при сборке проекта в Visual Studio указать, что для таких-то библиотек не нужно включать отладочную информацию в итоговый файл *.PDB ?<br />
Если да, то как это сделать ?<br />
<br />
Проект - cmake. Проблема в том, что бОльшую часть сторонней библиотеки не нужно отлаживать и трассировать, а мою собственную программу, которая использует библиотеку - нужно. Т.е. я хочу сэкономить на объеме PDB, чтобы в нее не включалась отладочная информация из внешней библиотеки (речь идет о QT).</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/cpp-ide-tools/">C/C++: IDE, инструментарий</category>
			<dc:creator>PM123</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/cpp-ide-tools/thread3222354.html</guid>
		</item>
		<item>
			<title>Как запускать и отлаживать одновременно 2 проекта в Visual Studio 2022 для cmake ? - C/C++: IDE, инструментарий</title>
			<link>https://www.cyberforum.ru/cpp-ide-tools/thread3222335.html</link>
			<pubDate>Sat, 18 Apr 2026 17:11:35 GMT</pubDate>
			<description>Добрый вечер! 
В обычных не cmake-проектах Visual Studio 2022 и др. версии позволяли назначить...</description>
			<content:encoded><![CDATA[<div>Добрый вечер!<br />
В обычных не cmake-проектах Visual Studio 2022 и др. версии позволяли назначить запускаемые проекты, что позволяло запускать и отлаживать их одновременно.<br />
<br />
При использовании cmake-проекта такого пункта в меню просто нет.<br />
<br />
В таком случае, каким образом запускать и отлаживать 2 проекта одновременно, когда они собираются в составе cmake-проекта VS ?</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/cpp-ide-tools/">C/C++: IDE, инструментарий</category>
			<dc:creator>PM123</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/cpp-ide-tools/thread3222335.html</guid>
		</item>
		<item>
			<title>Почему QTcpSocket не полностью сразу вычитывает доступные данные ? - C++ Qt</title>
			<link>https://www.cyberforum.ru/qt/thread3222316.html</link>
			<pubDate>Fri, 17 Apr 2026 21:25:34 GMT</pubDate>
			<description>Прошу подсказать, в чем может причина такого результата чтения из tcp-сокета: 
 
Клиент направляет...</description>
			<content:encoded><![CDATA[<div>Прошу подсказать, в чем может причина такого результата чтения из tcp-сокета:<br />
<br />
Клиент направляет в QTcpSocket данные - 5 символов = длина пакета и дальше данные: 00077 дальше всяко-разное (латинские буквы, цифры и т.п.)<br />
<br />
На стороне сервера - непонятка, сигнал readyRead получаю,<br />
сокет докладывает о доступности 82 байт = ba.<br />
Пытаюсь читать 5 байт - те самые &quot;00077&quot;, однако после чтения размер буфера = 4<br />
<br />
<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">QTcpSocket socketToRead;<br />
<br />
...<br />
<br />
QByteArray Header;<br />
qint64 ba = socketToRead-&gt;bytesAvailable();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  // = 82 = соответствует тому, что отсылает клиент<br />
qint64 s2 = 5;<br />
bool ok = socketToRead-&gt;readLineInto(&amp;Header, s2);<br />
qsizetype s = Header.size();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // = 4<br />
qDebug() &lt;&lt; &quot;Доступно = &quot; &lt;&lt; ba &lt;&lt; &quot;Считано байт &quot; &lt;&lt; s &lt;&lt; &quot;=&quot; &lt;&lt; Header;&nbsp; &nbsp;  // доступно = 8 2, считано = 4 = 0007</code><hr />
</div>Почему так может случаться ?<br />
readLineInto как-то по-своему распознает конец данных ?<br />
Или при наличии 82 символов нет никаких гарантий, что они сразу могут быть считаны ?</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/qt/">C++ Qt</category>
			<dc:creator>PM123</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/qt/thread3222316.html</guid>
		</item>
		<item>
			<title>Как в QMainWindow добавить несколько виджетов на место центрального ? - C++ Qt</title>
			<link>https://www.cyberforum.ru/qt/thread3222315.html</link>
			<pubDate>Fri, 17 Apr 2026 20:38:08 GMT</pubDate>
			<description>Добрый вечер! 
 
В прежней версии моей программы я не использовал QMainWindow. 
Создавалось окно...</description>
			<content:encoded><![CDATA[<div>Добрый вечер!<br />
<br />
В прежней версии моей программы я не использовал QMainWindow.<br />
Создавалось окно редактора и надпись, все паковалось в layout и он устанавливался как-то так:<br />
<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; // --- создание интерфейса ---<br />
&nbsp; &nbsp; &nbsp; &nbsp; MsgWindow = new QTextEdit();<br />
&nbsp; &nbsp; &nbsp; &nbsp; MsgWindow-&gt;setReadOnly(true);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; QVBoxLayout* vl = new QVBoxLayout();<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; vl-&gt;addWidget(new QLabel(&quot;&lt;H1&gt;Server1&lt;H1&gt;&quot;));<br />
&nbsp; &nbsp; &nbsp; &nbsp; vl-&gt;addWidget(MsgWindow);<br />
<br />
&nbsp; &nbsp; setLayout(vl);<br />
&nbsp; &nbsp; // -------------------------------</code><hr />
</div><br />
После этого все, что упаковано в <code class="inlinecode">vl</code>, появлялось на экране.<br />
<br />
Теперь я создал класс - наследник QMainWindow :<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">class MyMainWindow : public QMainWindow {<br />
&nbsp;  void CreateGUI() {<br />
&nbsp; &nbsp; &nbsp; &nbsp;  здесь весь код из блока, приведенного выше<br />
&nbsp; &nbsp; &nbsp; &nbsp;  // --- создание интерфейса ---<br />
&nbsp;  }<br />
}</code><hr />
</div>... и хочу, чтобы все из <code class="inlinecode">vl</code> вывелось в центральном виджете.<br />
<br />
В результате получаю ошибку: <br />
<font color="Red">QWidget::setLayout: Attempting to set QLayout &quot;&quot; on MyMainWindow &quot;&quot;, which already has a layout.</font><br />
<br />
Я бы мог вызвать setCentralWidget(), если бы он у меня был один, но их два.<br />
<br />
Каким тогда образом мне поместить на место центрального виджета мне поместить то, что я сформировал layout <code class="inlinecode">vl</code> ?</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/qt/">C++ Qt</category>
			<dc:creator>PM123</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/qt/thread3222315.html</guid>
		</item>
		<item>
			<title>Счет за телефон - С++ для начинающих</title>
			<link>https://www.cyberforum.ru/cpp-beginners/thread3222308.html</link>
			<pubDate>Fri, 17 Apr 2026 14:49:08 GMT</pubDate>
			<description>Тарифный план мобильной связи включает в себя 50 минут разговоров и 50 смс-сообщений за $15,00 в...</description>
			<content:encoded><![CDATA[<div>Тарифный план мобильной связи включает в себя 50 минут разговоров и 50 смс-сообщений за $15,00 в месяц.<br />
Каждая дополнительная минута стоит $0,25, а каждое дополнительное сообщение $0,15.<br />
Все счета за телефон облагается налогом в размере 5 % от общей суммы.<br />
<br />
Написать программу, которая будет запрашивать у пользователя количество израсходованных за месяц минут разговора и<br />
смс-сообщений и отображать:<br />
<br />
базовую сумму тарификации (без учета налога)<br />
сумму за дополнительные минуты и сообщения (без учета налога)<br />
налог на всю сумму<br />
итоговую сумму к оплате (с учетом налога)<br />
Формат входных данных<br />
Вводятся два целые неотрицательные числа: количество израсходованных минут и количество отправленных смс.</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/cpp-beginners/">С++ для начинающих</category>
			<dc:creator>Whitecolor</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/cpp-beginners/thread3222308.html</guid>
		</item>
		<item>
			<title>Как сделать dll из подмодуля и добавок? - C++</title>
			<link>https://www.cyberforum.ru/cpp/thread3222307.html</link>
			<pubDate>Fri, 17 Apr 2026 14:42:47 GMT</pubDate>
			<description>Есть папка с подмодулем (подключенна к общему репозиторию чтоб оттуда обновляться). В ней ничего...</description>
			<content:encoded><![CDATA[<div>Есть папка с подмодулем (подключенна к общему репозиторию чтоб оттуда обновляться). В ней ничего своего писать нельзя Есть папка со своими дополнениями к подмодулю. Там свои классы и файл dll.hpp вида:<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">#pragma once<br />
<br />
// Export/import macros for Windows and GCC/Clang<br />
#ifdef _WIN32<br />
#ifdef RLIB_EXPORT<br />
#define RLIB_API __declspec(dllexport)<br />
#else<br />
#define RLIB_API __declspec(dllimport)<br />
#endif<br />
#else<br />
#define RLIB_API __attribute__((visibility(&quot;default&quot;)))<br />
#endif<br />
<br />
#include &quot;LegendX.hpp&quot;<br />
#include &quot;Total.hpp&quot;<br />
<br />
<br />
namespace Ret {<br />
class RLIB_API Ret::Diagram;<br />
<br />
class RLIB_API Ret::PointsSequenceX;<br />
<br />
class RLIB_API Ret::PointsSequenceXDrawer;<br />
<br />
class RLIB_API Ret::LegendX;<br />
} // namespace Ret</code><hr />
</div>головной CMakeLists:<br />
<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">cmake_minimum_required(VERSION 3.10 FATAL_ERROR)<br />
project(retomtt VERSION 0.0.1)<br />
set(CMAKE_CXX_STANDARD 14)<br />
set(CMAKE_CXX_STANDARD_REQUIRED ON) <br />
find_package(PkgConfig)<br />
pkg_check_modules(GTKMM gtkmm-3.0 REQUIRED)<br />
pkg_check_modules(LIBXMLPP REQUIRED libxml++-2.6)<br />
set_source_files_properties(${RESOURCE_FILE} PROPERTIES COMPILE_FLAGS -Wno-overlength-strings)<br />
<br />
include_directories(External/Libraries/RetomCommonSolution)<br />
include_directories(External/Libraries/PointsSequenceX)<br />
include_directories(External/Libraries/RetomCommonSolution/RetLibCommonView/View/Gtk3)<br />
<br />
file(GLOB_RECURSE rcsFiles External/Libraries/RetomCommonSolution/*/*.cpp)<br />
file(GLOB_RECURSE rcsHeaders External/Libraries/RetomCommonSolution/*/*.h)<br />
<br />
set(RCS_LIB _retom_cs)<br />
<br />
add_definitions(-D_USE_MATH_DEFINES)<br />
<br />
add_library(${RCS_LIB} SHARED ${rcsFiles} ${rcsHeaders})<br />
target_include_directories(<br />
&nbsp; ${RCS_LIB}<br />
&nbsp; PUBLIC<br />
&nbsp; &nbsp; External/Libraries/RetomCommonSolution<br />
&nbsp; &nbsp; External/Libraries/RetomCommonSolution/RetLibCommonView/View/Gtk3<br />
&nbsp; &nbsp; External/Libraries/RetomCommonSolution/RetLibCommonView/View/Gtk3/SeriesDrawArea/CoordsConverter<br />
&nbsp; &nbsp; External/Libraries/PointsSequenceX)<br />
<br />
# Set C++14 standard for the library<br />
target_compile_features(${RCS_LIB} PRIVATE cxx_std_14)<br />
set_target_properties(<br />
&nbsp; ${RCS_LIB}<br />
&nbsp; PROPERTIES CXX_STANDARD 14<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  CXX_STANDARD_REQUIRED ON<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  CXX_EXTENSIONS OFF)<br />
<br />
target_include_directories(${RCS_LIB} PRIVATE ${GTKMM_INCLUDE_DIRS})<br />
target_link_libraries(${RCS_LIB} PRIVATE ${GTKMM_LIBRARIES})<br />
<br />
target_include_directories(${RCS_LIB} SYSTEM PRIVATE ${LIBXMLPP_INCLUDE_DIRS})<br />
target_link_libraries(${RCS_LIB} PRIVATE ${LIBXMLPP_LIBRARIES})<br />
<br />
# Define export macro on Windows<br />
if(WIN32)<br />
&nbsp; target_compile_definitions(${RCS_LIB} PRIVATE RETOMLIB_EXPORT)<br />
endif()<br />
<br />
set(sources<br />
&nbsp; &nbsp; main.cpp<br />
&nbsp; &nbsp; MainWindow/mainwindow.cpp<br />
&nbsp; &nbsp; model/main.cpp<br />
&nbsp; &nbsp; gtk_helpers.cpp<br />
&nbsp; &nbsp; ${RESOURCE_FILE}<br />
)<br />
<br />
set(headers<br />
&nbsp; &nbsp; MainWindow/mainwindow.hpp<br />
&nbsp; &nbsp; AboutWindow/aboutwindow.hpp<br />
&nbsp; &nbsp; model/main.hpp<br />
&nbsp; &nbsp; gtk_helpers.hpp<br />
)<br />
<br />
add_executable(${PROJECT_NAME} WIN32 ${sources} ${headers})<br />
...<br />
<br />
add_custom_target(gladeGeneratedResource ALL DEPENDS ${RESOURCE_FILE})<br />
<br />
target_include_directories(${PROJECT_NAME} PRIVATE ./)<br />
<br />
...<br />
<br />
target_link_libraries(${PROJECT_NAME} PRIVATE ${RCS_LIB})<br />
<br />
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)<br />
&nbsp; add_custom_command(<br />
&nbsp; &nbsp; TARGET ${PROJECT_NAME}<br />
&nbsp; &nbsp; POST_BUILD<br />
&nbsp; &nbsp; COMMAND ${CMAKE_COMMAND} -E copy_if_different $&lt;TARGET_FILE:${RCS_LIB}&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $&lt;TARGET_FILE_DIR:${PROJECT_NAME}&gt;)<br />
endif()</code><hr />
</div>dll билдится, но не конечный екзешник. выдает<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">C:\Windows\system32\cmd.exe /C &quot;cd . &amp;&amp; C:\msys64\mingw64\bin\c++.exe -g -mwindows CMakeFiles/retomtt.dir/main.cpp.obj CMakeFiles/retomtt.dir/MainWindow/mainwindow.cpp.obj CMakeFiles/retomtt.dir/model/main.cpp.obj CMakeFiles/retomtt.dir/gtk_helpers.cpp.obj -o retomtt.exe -Wl,--out-implib,libretomtt.dll.a -Wl,--major-image-version,0,--minor-image-version,0&nbsp; -lgtkmm-3.0&nbsp; -latkmm-1.6&nbsp; -lgdkmm-3.0&nbsp; -lgiomm-2.4&nbsp; -lgtk-3&nbsp; -lgdk-3&nbsp; -lz&nbsp; -lgdi32&nbsp; -limm32&nbsp; -lshell32&nbsp; -lole32&nbsp; -luuid&nbsp; <br />
-lwinmm&nbsp; -ldwmapi&nbsp; -lsetupapi&nbsp; -lcfgmgr32&nbsp; -lhid&nbsp; -lwinspool&nbsp; -lcomctl32&nbsp; -lcomdlg32&nbsp; -lcairo-gobject&nbsp; -latk-1.0&nbsp; -lpangomm-1.4&nbsp; -lglibmm-2.4&nbsp; -lcairomm-1.0&nbsp; -lsigc-2.0&nbsp; -lpangocairo-1.0&nbsp; -lpangowin32-1.0&nbsp; -lpango-1.0&nbsp; -lcairo&nbsp; -lharfbuzz&nbsp; -lgdk_pixbuf-2.0&nbsp; -lgio-2.0&nbsp; -lgobject-2.0&nbsp; -lglib-2.0&nbsp; -lintl&nbsp; -lxml++-2.6&nbsp; -lxml2&nbsp; -lglibmm-2.4&nbsp; -lgobject-2.0&nbsp; -lglib-2.0&nbsp; -lintl&nbsp; -lsigc-2.0&nbsp; lib_retom_cs.dll.a&nbsp; -lcairomm-1.0&nbsp; -lpangocairo-1.0&nbsp; -lpangowin32-1.0&nbsp; -lpango-1.0&nbsp; -lcairo&nbsp; -lharfbuzz&nbsp; -lgdk_pixbuf-2.0&nbsp; -lgio-2.0&nbsp; -lxml++-2.6&nbsp; -lxml2&nbsp; C:/msys64/mingw64/lib/libxlsxwriter.dll.a&nbsp; -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 &amp;&amp; C:\Windows\system32\cmd.exe /C &quot;cd /D E:\VBStore\common\retomTT-multiplatform\build &amp;&amp; C:\msys64\mingw64\bin\cmake.exe -E copy_if_different E:/VBStore/common/retomTT-multiplatform/build/lib_retom_cs.dll E:/VBStore/common/retomTT-multiplatform/build&quot;&quot;<br />
collect2.exe: error: ld returned 37 exit status</code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/cpp/">C++</category>
			<dc:creator>magnuz</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/cpp/thread3222307.html</guid>
		</item>
		<item>
			<title>Нарушение доступа к памяти Windows - C++ Qt</title>
			<link>https://www.cyberforum.ru/qt/thread3222305.html</link>
			<pubDate>Fri, 17 Apr 2026 12:57:01 GMT</pubDate>
			<description>Создал программу с главным окном и классом control дочерним к QThread. 
Класс создавал в...</description>
			<content:encoded><![CDATA[<div>Создал программу с главным окном и классом <i>control </i>дочерним к QThread.<br />
Класс создавал в конструкторе главного окна; в главном окне решил создать слово для флагов <i>PSW,</i> доступ public.<br />
Из <i>control</i> есть обращение к флагам <i>PSW </i>и к некоторым элементам окна (обычно чтение значений).Из конструктора Windows тоже обращение к control, напр. чтение переменных инициализации.<br />
Программа при запуске с некоторой вероятностью закрывается с ошибкой -1073741819 нарушение доступа к памяти Windows.<br />
Но если я в конце функции при создании первого показываемого окна напишу <div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">FILE*f=fopen(&quot;ers&quot;,&quot;wb);fwrite('a',1,1,f);fclose(f);</code><hr />
</div> а в начале control <i>run() </i><div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">FILE*f=fopen(&quot;ers&quot;,&quot;ab+&quot;);fwrite('b',1,1,f);fclose(f);</code><hr />
</div>то запускал программу 25 раз подряд и уже не крушится. По видимому, сначала пишется 'a', затем 'b' и неявно поток приостанавливается до исполнения конструктора MainWindow, когда все объекты создаются. Перенести<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">start(QThread::HighPriority);</code><hr />
</div> из конструктора от <i>control</i> в функцию MainWindow не могу, тогда гарантированно ошибка 3. Может использовать семафор или более красивый метод?</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/qt/">C++ Qt</category>
			<dc:creator>jykm</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/qt/thread3222305.html</guid>
		</item>
		<item>
			<title>Как правильно работать с данными по схеме thread - worker? - C++ Qt</title>
			<link>https://www.cyberforum.ru/qt/thread3222282.html</link>
			<pubDate>Thu, 16 Apr 2026 19:36:16 GMT</pubDate>
			<description>Добрый вечер! 
 
Я реализую процедуру чтения данных из QTcpServer в отдельном потоке по схеме из...</description>
			<content:encoded><![CDATA[<div>Добрый вечер!<br />
<br />
Я реализую процедуру чтения данных из QTcpServer в отдельном потоке по схеме из <a rel="nofollow noopener noreferrer" href="https://wiki.qt.io/QThreads_general_usage" target="_blank" title="https://wiki.qt.io/QThreads_general_usage">документации</a>:<br />
<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">class Worker : public QObject {<br />
&nbsp; &nbsp; Q_OBJECT<br />
public:<br />
&nbsp; &nbsp; Worker();<br />
&nbsp; &nbsp; ~Worker();<br />
public slots:<br />
&nbsp; &nbsp; void process();<br />
&nbsp; &nbsp; void read_net_data();<br />
signals:<br />
&nbsp; &nbsp; void finished();<br />
&nbsp; &nbsp; void error(QString err);<br />
private:<br />
&nbsp; &nbsp; QByteArray CurData; -- с этими данными будет работать _process_ и _read_net_data_<br />
};<br />
<br />
QThread* thread = new QThread();<br />
Worker* worker = new Worker();<br />
worker-&gt;moveToThread(thread);</code><hr />
</div>В то же время в документации сказано:<br />
<br />
By the way, one extremely important thing to note here is that you should NEVER allocate heap objects (using new) in the constructor of the QObject class as this allocation is then performed on the main thread and not on the new QThread instance, meaning that the newly created object is then owned by the main thread and not the QThread instance.<br />
<br />
Я хочу, чтобы CurData были доступны для process и read_net_data.<br />
Однако терзают смутные сомнения: не буду ли нарушать вышеуказанное предостережение из документации - ведь CurData инициализируется в главном потоке, а использоваться будет в потоке thread, в котором будет работать worker.<br />
<br />
Если это нарушение, то как тогда поступить - сделать CurData указатель на QByteArray или как то еще ?</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/qt/">C++ Qt</category>
			<dc:creator>PM123</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/qt/thread3222282.html</guid>
		</item>
		<item>
			<title>Неинициализированные указатели - С++ для начинающих</title>
			<link>https://www.cyberforum.ru/cpp-beginners/thread3222211.html</link>
			<pubDate>Tue, 14 Apr 2026 14:27:19 GMT</pubDate>
			<description>Подскажите пожалуйста, если использование неинициализированных указателей в С++ сопряжено с рисками...</description>
			<content:encoded><![CDATA[<div>Подскажите пожалуйста, если использование неинициализированных указателей в С++ сопряжено с рисками неопределённого поведения и случайного доступа к памяти, то для каких целей в языке оставлена возможность объявления неинициализированных указателей?</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/cpp-beginners/">С++ для начинающих</category>
			<dc:creator>Also what</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/cpp-beginners/thread3222211.html</guid>
		</item>
		<item>
			<title>Цикл for() - блок инициализации - C для начинающих</title>
			<link>https://www.cyberforum.ru/c-beginners/thread3222194.html</link>
			<pubDate>Mon, 13 Apr 2026 21:38:46 GMT</pubDate>
			<description><![CDATA[Пример: 
 
uint16_t m; 
... 
for (uint8_t i = 0, m = 0; i < 10; i++) { 
    ... 
    if(...) 
     ...]]></description>
			<content:encoded><![CDATA[<div>Пример:<br />
<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">uint16_t m;<br />
...<br />
for (uint8_t i = 0, m = 0; i &lt; 10; i++) {<br />
&nbsp; &nbsp; ...<br />
&nbsp; &nbsp; if(...)<br />
&nbsp; &nbsp; &nbsp; &nbsp; m++;<br />
&nbsp; &nbsp; ...<br />
}<br />
if(m&gt;5) {<br />
<br />
}</code><hr />
</div>Какая будет переменная &quot;m&quot; внутри for() - та, которая создана до for() или же она создастся в for() и после цикла пропадёт?<br />
Компилятор не ругается, но пример не работает.<br />
<br />
По факту - то, что видно в отладчике, в этом примере переменная &quot;m&quot; в цикле не инициализируется и не меняется: - она имеет до for() некое значение, которое сохраняется... <br />
Но, похоже, что это отладчик запутался в области видимости - т.е., в он вместо внутренней для for() переменной &quot;m&quot; (которая, видимо, всё-таки создаётся) показывает мне внешнюю по отношению к for() переменную &quot;m&quot;...  <br />
<br />
Если инициализацию &quot;m&quot; поставить перед объявлением &quot;i&quot;, то компилятор будет ругаться.<br />
Если инициализацию &quot;m&quot; сделать перед for(), то пример начинает работать...<br />
<br />
Компилер - GCC &quot;arm-gnu-toolchain-15.2.rel1-mingw-w64-x86_64-arm-none-eabi&quot; с опцией &quot;-std=c2x&quot;.</div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/c-beginners/">C для начинающих</category>
			<dc:creator>S17</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/c-beginners/thread3222194.html</guid>
		</item>
		<item>
			<title>Почему не компилируется программа - не создается QJsonDocument из QJsonObject? - C++ Qt</title>
			<link>https://www.cyberforum.ru/qt/thread3222191.html</link>
			<pubDate>Mon, 13 Apr 2026 19:33:24 GMT</pubDate>
			<description>Добрый вечер! 
Прошу подсказать, почему в указанной строке ниже возникает ошибка: 
 
    ...</description>
			<content:encoded><![CDATA[<div>Добрый вечер!<br />
Прошу подсказать, почему в указанной строке ниже возникает ошибка:<br />
<br />
     QJsonDocument::QJsonDocument: невозможно обратиться к private член, объявленному в классе &quot;QJsonDocument&quot;<br />
<br />
В док-ции к этому классу указано на конструктор и он - public:<br />
<br />
<code class="inlinecode">QJsonDocument::QJsonDocument(const QJsonObject &amp;object)<br />
Creates a QJsonDocument from object.</code><br />
<br />
Если заменить создание на <code class="inlinecode">new QJsonDocument()</code>, то ошибки нет.<br />
<br />
И еще вопрос по времени жизни <code class="inlinecode">j</code> и <code class="inlinecode">d</code>: <br />
<br />
правильно ли я понимаю, что для <code class="inlinecode">d</code> мне надо где-то далее в вызывающей программе вызвать <code class="inlinecode">delete</code> и он сам уничтожит <code class="inlinecode">j</code> ?<br />
<br />
Или и <code class="inlinecode">j</code> надо вытаскивать  уничтожать вручную ?<br />
<br />
Программа:<br />
<br />
<div class="printablecode">
	<div class="smallfont">:</div>
	<hr /><code dir="ltr">#include &lt;Windows.h&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;conio.h&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // kbhit<br />
#include &lt;QtNetwork&gt;<br />
#include &quot;MyClient.h&quot;<br />
<br />
#include &lt;QJsonObject&gt;<br />
#include &lt;QJsonDocument&gt;<br />
<br />
<br />
QJsonDocument* Get_JsonDoc() {<br />
&nbsp; &nbsp; &nbsp; &nbsp; QJsonObject* j = new QJsonObject();<br />
&nbsp; &nbsp; &nbsp; &nbsp; assert(j != nullptr);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; j-&gt;insert(&quot;a&quot;, &quot;1&quot;);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; QJsonDocument* d = new QJsonDocument(j);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --- здесь ошибка<br />
&nbsp; &nbsp; &nbsp; &nbsp; assert(d != nullptr);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; return d;<br />
}<br />
...</code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.cyberforum.ru/qt/">C++ Qt</category>
			<dc:creator>PM123</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/qt/thread3222191.html</guid>
		</item>
	</channel>
</rss>
