[C++] Dynamische char[] wordt groter dan opgegeven,

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

  • MoNo79
  • Registratie: Juli 2001
  • Laatst online: 21-03 21:47
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;

}

[ Voor 12% gewijzigd door MoNo79 op 27-11-2003 18:49 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:32

.oisyn

Moderator Devschuur®

Demotivational Speaker

duh, afsluiten met '\0', basis C/C++ kennis

Bovendien kun je hier ook best een std::string voor gebruiken, dan hoef je het niet zelf te doen

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.