我想做类似以下代码段的内容:
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做的,我需要一个班级?我必须使用 - >运营商莫名其妙?想法?
答案 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;}
它应该没问题