不同函数中struct成员的动态内存分配

时间:2013-01-11 13:19:50

标签: c++ struct dynamic-memory-allocation

我想做类似以下代码段的内容:

using namespace std;

struct str {
    int *integs;
};

void allocator(str*& str1) {str1.integs=new int[2];}
void destructor(str*& str1) {delete [] str1.integs;}

int main () {

    str str1;
    allocator(str1);
    str1.integs[0]=4;
    destructor(str1);
    return 0;
}

然而这不起作用;我得到错误:请求'str1'中的成员'integs',这是非类型'str '*

这是不可能用struct做的,我需要一个班级?我必须使用 - >运营商莫名其妙?想法?

2 个答案:

答案 0 :(得分:1)

您将str1作为指针的引用。你可能意味着:

void allocator(str& str1) {str1.integs=new int[2];}
void destructor(str& str1) {delete [] str1.integs;}

答案 1 :(得分:1)

str1是对指针的引用,你应该使用

str1->integs

或者仅将其用作参考:

void allocator(str& str1) {str1.integs=new int[2];}
void destructor(str& str1) {delete [] str1.integs;}

它应该没问题