【发布时间】:2016-02-14 22:14:47
【问题描述】:
使用 Ctrl+D 停止程序输入后,我不断收到错误 Segmentation fault(core dumped)。我一直在谷歌搜索这个错误并试图找出导致它的原因,但我似乎无法弄清楚。我已经尝试用谷歌搜索这个问题并查看了这个网站上的其他问题/答案,但我仍然无法弄清楚为什么我会收到错误。根据我的研究,我发现分段错误错误是由于尝试访问我无权访问的内存而引起的。我希望这是正确的。
我是 C++ 的新手,如果你们能给我任何帮助,我将不胜感激。
#include <iostream>
using namespace std;
#include "video.h"
int main() {
const int MAX = 100;
Video *video[MAX]; // up to 100 videos
for(int l = 0; l < MAX; l++)
{
video[l] = NULL;
}
string title;
string url;
string desc;
string sorting;
float length;
int rate;
cout << "What sorting method would you like to use?" << endl;
getline(cin, sorting);
cout << "Enter the title, the URL, a comment, the length, and a rating for each video" << endl;
while(getline(cin, title))
{
getline(cin, url);
getline(cin, desc);
cin >> length;
cin >> rate;
cin.ignore();
for(int k=0; k < MAX; k++)
{
video[k] = new Video(title, url, desc, length, rate);
}
}
video[MAX]->print(); // prints the new Video object
delete[] video[MAX];
return 0;
}
【问题讨论】:
-
video[MAX]->print()没有意义,因为数组中没有 MAX 元素。你打算在这里做什么?