De opdracht bestaat erin om van een string een c-string te maken en dit via een functie c_str te doen. Nu als ik de c-string laat cout'en dan krijg ik andere letters te zien. Ik vermoed dus dat mijn pointer naar de verkeerde plaats wijst, maar ik zie niet hoe het dan wel moet:
Code: Selecteer alles
#include <iostream>
using namespace std;
char* c_str(string str) {
const int SIZE=str.size();
char t[SIZE+1];
for (int i=0; i<str.size(); i++) {
t[i]=str[i];
}
t[SIZE]=0;
char *p= new char;
p=&t[0];
return p;
}
int main() {
string input;
cout << "String: ";
cin >> input;
char *p=c_str(input);
cout << p;
delete p;
cout << endl << endl;
system("pause");
return 0;
}