将内存分配给指针数组时SEG故障



我尝试将内存分配给对象指针时会出现SEG故障(尝试动态创建1D数组(。我究竟做错了什么?我首先是由于使用了T型的类型,但即使对于本机数据类型(例如INT(也会发生这种情况。我来自C背景(新的C (,在这里我将使用Malloc/Calloc进行内存分配。

例如:

template <typename T>
struct test {
   T *element;
}
class Foo {
    Foo() {
    //empty
    }
    // as an example using T to be int
    test<int> *t;
    template <typename T>
    void setup(int n) {
      t->element = new T[n];
    }
    void run() {
      setup(10);
    }
}

简单,t从未初始化,因此在setup中将其删除会导致Segfault。

这是因为在t->element = new T[n]中,您在(可能(非初始化数据成员t上访问成员element

相关内容

  • 没有找到相关文章

最新更新