🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #9549

Re: Dynamische Array in C++

#9549
From: Christof Laeremans
Date: Thu, 25 Apr 2002 19:11
223 lines
5934 bytes
On 4/25/02 9:01 PM, in article voYx8.39651$Ze.6724@afrodite.telenet-ops.be,
"Philip Paeps" <philip@paeps.cx> wrote:

> Christof Laeremans <christof_laeremans@hotmail.com> wrote:
>> Even de uitleg geven van het programma.
>> 
>> Het moet een x aantal woorden in lezen zoals
> 
> [...]
> 
>> Deze worden moeten dan in een grote string komen en als uitvoer geven
>> Er was eens een hond die verliefd was op een tuinkabouter.
> 
> [...]
> 
>> Wat is nu het probleem... Als ik deze code run met CodeWarrior op Mac OS X
>> dan geeft hij geen foutmelding tijdens het compileren en het runnen.
> 
> Was dat hierboven de volledige code?  Ik ontbreek preciess een header file.
> Kan je anders even de volledige code posten, dan kunnen andere het ook
> proberen te compilen, en zien waar wat misloopt.
> 
> Heb je al geprobeert met warnings te compilen?  (-Wall met gcc, CodeWarrior
> ken ik niet).
> 
>> Laat ik dit programma uitvoeren via VC++ dan krijg volgende melding (alleen
>> bij het uitvoeren van het programma, niet tijdens het compileren.)
> 
> VC++ is dan ook niet echt *de* compiler bij uitstek...
> 
>> Debug Error !
>> DAMAGE: after Normal block (#43) at 0x00300040
> 
> Wat een fantastisch descriptieve error!  Kan je hem backtracen?  Zien waar het
> precies misloopt?
> 
>> En nu stel ik me de vraag. Heb ik nu een array die zich zelf groter kan
>> maken of is het gewoon Windows of Mac OS X dat niet normaal doet.
> 
> Waarschijnlijk wintendo dat doet waarvoor het gemaakt is: niet werken.  Het is
> een redelijk eenvoudige implementatie van een dynamic array, maar ik zou er
> toch wat constraints en error-handling inbouwen.  Memory lekken zijn namelijk
> gouw geschreven :-/
> 
>> Alvast bedankt voor eventuele tips.
> 
> Post even je code, dan probeer ik het hier te compilen, en te zien waar het
> zou kunnen mislopen.
> 
> In ieder geval zijn constructies als #include <iostream.h> niet wenselijk,
> gebruik gewoon <iostream> en consoorten.
> 
> - Philip
> 

Ok

Hier komt de volledige code.
Dat van #include <iostream.h>. Ik heb het eens geprobeerd in een oefeningen
die we moesten maken maar dan via #include <iostream> en het werd volledig
afgekeurd door de docent :(

Nu, ja de volledige code.

Alvast bedankt. 

Mvg,

Christof Laeremans


**** Header File *****

#ifndef __DGSTRING_H
#define __DGSTRING_H

#include <iostream.h>

const int MAX = 100;

class LangeString
{
    private:
        
        int _lengte;
        char * _LangeString;
        char _string[MAX];
    
    public:
        
        LangeString();
        
        ~LangeString();
        
        void aanmakenDA();
                
        void setString(char string[]);
        
        char * getLangeString();
            
    
};

#endif

***************************

******* implementatie van de header file *******
#include <iostream.h>
#include <string.h>
#include "DGString.h"
#include <ctype.h>

LangeString::LangeString()
{
    //Constructor
    _lengte = 0;
}

LangeString::~LangeString()
{
    //Destructor
    delete []  _LangeString;
}

void LangeString::aanmakenDA()
{
    _LangeString = new char[1];
    *_LangeString = NULL;
}

void LangeString::setString(char string[])
{

    _lengte = strlen(string);
    
        
    if(strlen(_LangeString)==0)
    {
        
        strncpy(_LangeString,string,_lengte+1); //+1 om het \0 toe te
voegen.
        _LangeString[0] = toupper(_LangeString[0]);
    }
    
    else
    {
        strcat(_LangeString," ");
        strncat(_LangeString,string, _lengte);

    }
    
}

char * LangeString::getLangeString()
{
    strcat(_LangeString,".");
    return _LangeString;
    delete [] _LangeString;
}


*************

*****Programma***********
#include <iostream.h>
#include "DGString.h"


void emptyBuffer();

int main()
{
    
    char string[MAX];
    char antwoord;
    LangeString Woord;
    
    
    Woord.aanmakenDA();
    
    do
    {
        cout<<"Geef een woord in: ";
        cin.get(string,MAX);
        emptyBuffer();
        
        Woord.setString(string);
    
        cout<<endl;
        
        
        cout<<"Nog een woord ingeven? (j/n): ";
        cin>> antwoord;
        cin.get(); //Nodig om de enter om het antwoord in te lezen op te
vangen. 
                   //Anders oneindige lus.
        
        cout<<endl;
        
    }
    while( antwoord != 'n');
        
    cout<<endl;
    
        
    cout<<"De lange string is: "<<Woord.getLangeString();
        
}


void emptyBuffer()
{
    char c;
    
    do
    {
        cin.get(c);
    }
    while (c != '\n');
}

**********************
Technical Details
Message-ID: <B8EE218B.2016%christof_laeremans@hotmail.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!supernews.com!195.40.4.120.MISMATCH!easynet-quince!easynet.net!teaser.fr!proxad.net!skynet.be!skynet.be!news.be.wanadoo.com!news.wanadoo.be!not-for-mail
References: <B8EE1A81.2010%christof_laeremans@hotmail.com> <voYx8.39651$Ze.6724@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,d8a342a4bf67824a
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-04-25 12:11:49 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!supernews.com!195.40.4.120.MISMATCH!easynet-quince!easynet.net!teaser.fr!proxad.net!skynet.be!skynet.be!news.be.wanadoo.com!news.wanadoo.be!not-for-mail
From: Christof Laeremans <christof_laeremans@hotmail.com>
Newsgroups: be.comp.programming
Subject: Re: Dynamische Array in C++
Date: Thu, 25 Apr 2002 21:11:39 +0200
Organization: Wanadoo Belgium
Lines: 225
Message-ID: <B8EE218B.2016%christof_laeremans@hotmail.com>
References: <B8EE1A81.2010%christof_laeremans@hotmail.com> <voYx8.39651$Ze.6724@afrodite.telenet-ops.be>
NNTP-Posting-Host: adsl-143-191.wanadoo.be
Mime-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Trace: sinclair.be.wanadoo.com 1019761904 1401734 213.177.143.191 (25 Apr 2002 19:11:44 GMT)
X-Complaints-To: abuse@wanadoo.be
NNTP-Posting-Date: Thu, 25 Apr 2002 19:11:44 +0000 (UTC)
User-Agent: Microsoft-Entourage/10.0.0.1309