J'essaie le code suivant et il échoue avec l'erreur suivante:C de la surcharge >> pour ifstream sur pointeur mac étant libéré n'a pas été alloué
malloc: *** error for object 0x10000d8c0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Program received signal: “SIGABRT”.
Voici le contenu du fichier input.txt: Il a plein autorisations et le fichier est ouvert avec succès dans le débogueur. S'il vous plaît aider.
Jacob Anderson
Michael Thomson
Joshua Smith
Mathew Matheis
Ethan Evans
Emily Drake
Emma Patterson
Madison McPhee
Hannah Briens
Ashley Schmidt
.
#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>
#include <list>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
struct DataType {
string lastname; // (Key) Student's Last Name
string firstname; // Student's First Name
string getKey() const
{ return lastname; } // Returns the key field
};
ostream& operator << (ostream& os, DataType myData) {
os<<myData.firstname<< " "<<myData.lastname;
return os;
}
bool operator < (DataType lhs, DataType rhs) {
if (lhs.firstname < rhs.firstname)
return true;
return false;
}
int main() {
ifstream studentFile ("input.txt"); // Student file
list <DataType> students; // Students
DataType currStudent; // One Student (has firstname,lastname)
if (! studentFile.is_open())
{
return -1;
}
while (studentFile >> currStudent.firstname >> currStudent.lastname) {
students.push_back(currStudent);
}
list<DataType>::iterator i = students.begin();
while (i != students.end()) {
cout << *i << endl ;
++i;
}
}
Est-ce le problème? : http://stackoverflow.com/questions/2234557/c-using-getline-prints-pointer-being-freed-was-not-allocated-in-xcode – ergosys