Ik heb een probleem met een dynamische char[].
De arry wordt namelijk groter als opgegeven, presies 18 krakters groter.
Als ik de code hier onder uit voer krijg ik dit op het scherm:
Dit is een test, leuk he!²²²½½½½½½½½½½■ ■½½
Dit snap ik niet want de arry moet net zo groot worden als de lengte van de text.
Ook als ik bv 5 opgeef wordt hij 23 groot
Dit kan ik oplossen door bijvoorbeeld (grote-18) te doen, maar bij kleine strings krijg ik een foutmelding.
vb : result = new char[(lenteString - 18)];
ik zie het probleem echt niet meer, ik hoop dat er iemand is die het begrijpt.
<code>
#include <iostream>
#include <string>
using namespace std;
void main(){
string s = "Dit is een test, leuk he!";
string::iterator pos;
int lenteString = s.length(); // lengte van de test sting
char *result; // pointer dynamische char arry
result = new char[lenteString]: // maar char artray net zo groot als lengte string
pos = s.begin(); // set pointer string
for(int T = 0; T < (lenteString);T++)
{
result[T] = *pos; // vullen die hap
++pos;
}
cout << result; // gooi resultaat op scherm
cin.get();
delete[] result;
}
De arry wordt namelijk groter als opgegeven, presies 18 krakters groter.
Als ik de code hier onder uit voer krijg ik dit op het scherm:
Dit is een test, leuk he!²²²½½½½½½½½½½■ ■½½
Dit snap ik niet want de arry moet net zo groot worden als de lengte van de text.
Ook als ik bv 5 opgeef wordt hij 23 groot
Dit kan ik oplossen door bijvoorbeeld (grote-18) te doen, maar bij kleine strings krijg ik een foutmelding.
vb : result = new char[(lenteString - 18)];
ik zie het probleem echt niet meer, ik hoop dat er iemand is die het begrijpt.
<code>
#include <iostream>
#include <string>
using namespace std;
void main(){
string s = "Dit is een test, leuk he!";
string::iterator pos;
int lenteString = s.length(); // lengte van de test sting
char *result; // pointer dynamische char arry
result = new char[lenteString]: // maar char artray net zo groot als lengte string
pos = s.begin(); // set pointer string
for(int T = 0; T < (lenteString);T++)
{
result[T] = *pos; // vullen die hap
++pos;
}
cout << result; // gooi resultaat op scherm
cin.get();
delete[] result;
}
[ Voor 12% gewijzigd door MoNo79 op 27-11-2003 18:49 ]