gpt4 book ai didi

C++ vector 和结构指针

转载 作者:行者123 更新时间:2023-11-30 01:19:53 24 4
gpt4 key购买 nike

我的结构有一个整数 vector 。但是,当动态创建结构的实例时,我似乎无法访问该 vector 。

#include <stdlib.h>
#include <iostream>
#include <vector>
using namespace std;

typedef struct {
vector<int> intList;
} astruct;

int main()
{
astruct* myStruct = (astruct*) malloc(sizeof(astruct));
myStruct->intList.push_back(100);
cout << "Hello world!" << endl;
free(myStruct);
return 0;
}

尝试将 100 添加到结构的 vector 会使程序崩溃。 Hello World !永远不会显示。怎么回事?

最佳答案

您的 vector 永远不会被初始化,因为您只是将分配的内存区域转换为 struct*,因此是您的结构的构造函数,因此是 std::vecotr 的构造函数> 永远不会被调用。请改用新运算符

astruct* myStruct = new astruct();
myStruct->intList.push_back(100);
delete myStruct;

关于C++ vector 和结构指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com