Прошу прощения за задержку.
Вот пример кода, который дает разный результат, будучи собранный G++ разных версий:
(Код не чистый C++, а с элементами QT, то есть и собирать его надо при помощи qmake и make)
Файл проекта QT (qt_test_console.pro):
TEMPLATE = app
TARGET = qt_test_console
QT += core
SOURCES += main.cpp
Собственно файл с исходным текстом:
#include <QtCore>
#include <QCoreApplication>
#include <QDebug>
#include <QDebug>
struct struct_t {
int test_int;
QChar test_qstring;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
struct_t * test_struct = new struct_t();
qDebug() << "test_int: " << test_struct->test_int;
return a.exec();
}
Для изменения версии G++, которым собирается исходник, необходимо в файле конфигурации QT:
/usr/share/qt4/mkspecs/common/g++.conf
Указать компилятор:
QMAKE_CXX = g++-4.3
для использования G++ 4.3,
QMAKE_CXX = g++-4.4
для использования G++ 4.4
Так вот только при использовании G++ версии 4.4 (поведение одинаковое на разных платформах: x86 32-bit desktop linux, ARM xScale linux, MS Windows XP 32-bit), значение "test_int" равно нулю после инициализации.