永发信息网

C++报错,求高手指点!!

答案:1  悬赏:60  手机版
解决时间 2021-02-06 22:41
  • 提问者网友:辞取
  • 2021-02-06 03:43
源代码:
#include
#include
#include
#include
using
namespace std;
//function solve
int*solve(int n, int
m){
vectora;
vectorb;
vectorc;
int
ptrOFc = 0;
for (int i = 0; i < n+1;
i++){
a.push_back(i);
}
while (m < n){
int t =
n--;
c[ptrOFc++] = a[m];
a.erase(remove(a.begin(), a.end(),
a[m]));
for (int i = 1; i < n - m + 1; i++)
b =
a[m++];
for (int i = 1; i < m; i++)
b.push_back(a);
a =
b;
}
copy(c.begin(), c.end(), ostream_iterator(cout,"
"));
return &c[0];
}
int main(){
solve(10, 2);
return
0;
}
编译器报错:
0x5ED4A893 (msvcr120d.dll) (ConsoleApplication1.exe
中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。
PS:
请高手看一下,是我使用vector容器的方法有误,还是VS软件的问题
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-02-06 04:46
vectorc;是在函数里定义的,作用域就只在这个函数里,而你将&c[0]返回是有问题的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯