Название может вводить в заблуждение, не знаю, как это объяснить, но я приведу пример.
Итак, у меня есть такие структуры:
struct mom {
public:
static constexpr auto create(int i) {
return a(i);
}
struct a {
int* m_a;
constexpr a(int i) : m_a(&i) {
change();
}
constexpr void change(void) {
*m_a += 100;
}
struct b {
public:
static int get(a* import) {
int* arr = new int[10];
arr[1] = *import->m_a;
return arr[1];
}
};
};
};
И я называю это так:
printf("%d", mom::a::b::get(&(mom::create(10))));
Предполагается добавить 100 10 (или любое другое значение, которое вы ему дадите) во время компиляции, а затем во время выполнения, чтобы сохранить его в динамическом массиве и вернуть вам.
Этот код почти точен для моего проекта, но у него есть проблема: вместо добавления 100 к значению он возвращает случайное большое число (-95321314).Я попытался отладить его, и все нормально, пока я не вызову функцию get (), в которой я понятия не имею, что происходит, что вызывает
какие-либо идеи?