gpt4 book ai didi

C++: vector<字符串> *args = new vector<字符串>();导致SIGABRT

转载 作者:太空狗 更新时间:2023-10-29 19:42:31 27 4
gpt4 key购买 nike

非常不言自明。这是在“新 vector ”行上导致 SIGABRT 的方法:

vector<string> * Task::arguments() {
vector<string> *args = new vector<string>(); // CAUSES SIGABRT
int count = sizeof(_arguments);
for (int x = 0; x < count; x++) {
string argument(_arguments[x]);
args->push_back(argument);
}
return args;
}

请注意,我在别处调用该行时没有任何问题。以下是 Task 类中包含的列表:

#include <vector>
#include <unistd.h>
#include <string>
using namespace std;
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>

有什么想法吗?

最佳答案

此代码中没有真正的错误,尽管样式表明您迫切需要一个 good C++ book

正如@James 在对问题的评论中所说,使用动态分配 vector 对象几乎肯定是错误的,不保留它肯定是错误的在智能指针中。
如果您在代码的其他地方也这样做过,您很可能搞砸了堆,这是我在 new< 时能想到的唯一情况 会崩溃。

关于C++: vector<字符串> *args = new vector<字符串>();导致SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5019775/

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