Hi,
Ich habe das Problem, dass meine Funktion mit einem Array funktioniert, aber bei einem Pointer nicht. Als Fehler bekomme ich nur "Schlechter PTR" wärend dem laufenden Debug. Leider habe ich keine Lösung finden können. Hier Beispielcode zum Problem:
(ungetestet hoffentlich compilierfähig)
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#include <windows.h>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <tchar.h>
#include <string>
#include <fstream>
int ReadFile_Line(const char *FileName, std::string *strOut)
{
std::ifstream inFile(FileName, std::ios::in|std::ios::binary);
std::string zeile;
int i = 0;
while (getline(inFile, zeile))
{
strOut[i] = zeile; //HIER UNTERBRICHT DAS PROGRAMM
//std::cout << zeile << std::endl;
i++;
}
return 0;
}
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char *pFile = "test.txt";
int Error;
const int Lines = 100;
//FUNKTIONIERT NICHT
string *stest;
stest = new string[Lines];
//FUNKTIONIERT
//string stest[100];
Error = ReadFile_Line(pFile, stest);
for(int i = 0; i<Lines; i++)
{
cout << stest[i];
}
///////////////////////////
cin.get();
return 0;
}
|
Ich verstehe einfach nicht warum es mit dem Array funktioniert und mit dem dynamisch erzeugten array nicht. Ich hoffe jemand kann mir das erklären.
Gruß
HighligerBimBam