I've searched endlessly on SE for a logical explanation for why this is happening. It is probably something very simple that I've overlooked, however I cannot spot it and would really appreciate some assistance with this.
Last week I implemented a class to read the output of a system call from a .ini file and then find and store the required information into custom objects that are then stored in a vector inside a Config class. It is a Singleton config class storing a unique_ptr for each instance of my custom class that is created.
The thing is, when I implemented this last week on my laptop, I had zero issues reading and writing to my member vector and was able to get it working exactly how I needed it. Since pulling to my desktop computer, this vector, and any STL container that I use as a member of my class, throws a segmentation fault when I try to do anything on it, even get it's size.
I've tried to shorten the code below to only include sections that actually use this vector. I have replaced my config with A, and custom class with T, and no matter where I try to use my member container, or any other test STL containers that I add to the class, I get a segfault.
For the record, I am using Qt with C++11.
Update: This example breaks on line 50 of c.cpp when debugging, and anywhere that tries to call the vector.
Debug points to this line in stl_vector.h
  // [23.2.4.2] capacity
      /**  Returns the number of elements in the %vector.  */
      size_type
      size() const _GLIBCXX_NOEXCEPT
      /*-> this line */ { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
main.cpp
#include "c.h"
int main(int argc, char *argv[])
{
    C *c = C::getInstance();
    delete c;
    return 0;
}
t.h - Class stores information from file
#include <string>
class T
{
public:
    T();
    bool Active();
    std::string getA();
    void setA(std::string);
private:
    std::string a;
};
t.cpp
#include "t.h"
T::T()
{
}
bool T::Active()
{
    if(a == "")
    {
        return false;
    }
    return true;
}
std::string T::getA()
{
    return this->a;
}
void T::setA(std::string newa)
{
    this->a = newa;
}
c.h - Class stores T objects and parses file for information
#include "t.h"
#include <QDebug>
#include <vector>
#include <algorithm>
#include <iostream>
#include <memory>
#include <sstream>
#include <fstream>
class C
{
public:
    static C* getInstance();
private:
    C();
    static C* instance;
    static bool init;
    std::vector<std::unique_ptr<T>> t_list;
    void readLines(const std::string&);
};
c.cpp
#include "c.h"
bool C::init = false;
C* C::instance = nullptr;
C::C()
{
    system("echo this is a test command > a.ini");
    instance->readLines("a.ini");
}
C* C::getInstance()
{
    if(!init)
    {
        instance = new C;
        init = true;
    }
    return instance;
}
void C::readLines(const std::string &path)
{
    T* new_t;
    std::ifstream file(path.c_str());
    if(!file.is_open())
    {
        qDebug() << "Unable to open " << path.c_str();
    }
    std::ofstream o("test.txt");
    std::string line;
    while(std::getline(file, line))
    {
        // Split string before searching
        std::stringstream ss(line);
        std::string seg;
        std::vector<std::string> split;
        std::string left, right;
        // Search patterns
        size_t find_a = line.find("a");
        size_t del = line.find(':');
        if(find_a != std::string::npos)
        {
            o << "test_Size: " << t_list.size() << std::endl;
            if(new_t->Active())
            {
                T* temp = new_t;
                std::unique_ptr<T> move_t(temp);
                t_list.push_back(std::move(move_t));
            }
            o << "test: " << t_list.size() << std::endl;
            std::string n;
            // Check if previous ahas any null elements
            // Split string to find a
            n = line.substr(line.find("a "));
            n = n.substr(n.find(" ", +2));
            new_t->setA(n);
        }
        else
        {
            continue;
        }
    }
    // Add last a
    T* t = new_t;
    std::unique_ptr<T> move_t(t);
    //t_list.push_back(std::move(move_t));
    o << "a: " << t_list.back().get()->getA() << std::endl;
    o << t_list.size() << std::endl;
    o.close();
    file.close();
}
