left&right nachbau mit unvorhergesehener Ausgabe
Verfasst: Di Nov 19, 2013 8:57 pm
Hallo,
Direkt mal zum Problem: Ich hab zwei Funktionen, die auf meine "eigene" String-Klasse ausgerichtet sind: left und right.(C++)
Dabei möchte ich einfach den String "Hello World" mit den beiden Funktionen manipulieren(soll genauso arbeiten wie die Funktionen von iostream)..
Sprich: String holen, bearbeiten und neues Objekt der Klasse erzeugen und zurückgeben.
Dabei krieg ich meist allerdings nur "unlesbares"(Ab dem Abschnitt, wo ich str.left bzw. right aufrufe): �_����
Soweit so gut..
Ich ahne allerdings, das dass Problem nicht in den beiden Funktionen auftritt. Valgrind deutet aber auf eine solch schiere Menge an "Leaks", das ich keinerlei Ahnung habe, wo der Ursprung ist..
Befehl:
Und Ausgabe:
Ich hoffe, das mir jemand einen Tipp geben kann.
Danke im vorraus
Direkt mal zum Problem: Ich hab zwei Funktionen, die auf meine "eigene" String-Klasse ausgerichtet sind: left und right.(C++)
Dabei möchte ich einfach den String "Hello World" mit den beiden Funktionen manipulieren(soll genauso arbeiten wie die Funktionen von iostream)..
Sprich: String holen, bearbeiten und neues Objekt der Klasse erzeugen und zurückgeben.
Dabei krieg ich meist allerdings nur "unlesbares"(Ab dem Abschnitt, wo ich str.left bzw. right aufrufe): �_����
Soweit so gut..
Code: Alles auswählen
#include <iostream>
int mystrlen(char const *str)
{
int x=0;
for(; str[x] != '\0';x++)
{
//Do nothing.
}
return x;
}
class darkstring
{
friend darkstring & operator +=( darkstring & lhs, char const* rhs );
friend darkstring operator +( darkstring const & lhs, char const* rhs );
friend darkstring operator +( darkstring const & lhs, darkstring const & rhs );
friend darkstring operator +( char const * lhs, darkstring const & rhs );
friend std::ostream & operator <<( std::ostream & lhs, darkstring const & rhs );
private:
char *dstr;
unsigned int dstrlength;
public:
darkstring(const char* str)
{
int i=0,length=mystrlen(str);
dstrlength=length;
dstr=new char[length+1];
while(i < length)
{
dstr[i]=str[i];
i++;
}
dstr[i]='\0';
}
unsigned int find(char const *str);
darkstring& left(int pos)
{
int i=0;
int y=0;
char nstr[pos+1];
while(i < pos)
{
nstr[y]=dstr[i];
i++;
y++;
}
nstr[y+1]='\0';
darkstring str=nstr;
return str;
}
darkstring& right(int pos)
{
int i=0,y=pos,sized=size();
char nstr[sized-pos+2];
while(0 > sized)
{
nstr[i]=dstr[y];
y--;
i++;
}
nstr[y+1]='\0';
darkstring str=nstr;
return str;
}
unsigned int size() const
{
return dstrlength;
}
};
darkstring & operator+=(darkstring & lhs, char const* rhs )
{
int newLength=lhs.size() + mystrlen(rhs), lhs_size=lhs.size();
int i=0,y=0;
char *newSTR=new char[newLength];
while(i<lhs_size)
{
newSTR[i]=lhs.dstr[i];
i++;
}
while(i<newLength)
{
newSTR[i]=rhs[y];
y++;
i++;
}
//Nullbyte
newSTR[i]='\0';
delete[](lhs.dstr);
lhs.dstr=newSTR;
return lhs;
}
std::ostream & operator<<(std::ostream & lhs, darkstring const & rhs )
{
return lhs<<rhs.dstr;
}
darkstring operator +( darkstring const & lhs, char const* rhs )
{
darkstring newSTR=lhs.dstr;
newSTR+=rhs;
return newSTR;
}
darkstring operator +( darkstring const & lhs, darkstring const & rhs )
{
darkstring newSTR=lhs.dstr;
newSTR+=rhs.dstr;
return newSTR;
}
darkstring operator +( char const * lhs, darkstring const & rhs )
{
darkstring newSTR=lhs;
newSTR+=rhs.dstr;
return newSTR;
}
int main(int argc, char** argv)
{
darkstring str="Hallo ";
str +="Welt";
//test
std::cout << "----Referenz links------"<<std::endl;
std::cout << str+"--!!--!!" << std::endl;
std::cout << "---Beides Referenzen----"<<std::endl;
std::cout << str+str << std::endl;
std::cout << "---Referenz rechts------"<<std::endl;
std::cout << "!!--!!--"+str<< "!!--!!--" <<std::endl;
std::cout << str.right(5);
}
Befehl:
Code: Alles auswählen
valgrind --tool=memcheck -v --workaround-gcc296-bugs=yes --leak-check=yes ./strclass
Code: Alles auswählen
==5799== Memcheck, a memory error detector
==5799== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==5799== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==5799== Command: ./ownSTR
==5799==
--5799-- Valgrind options:
--5799-- --suppressions=/usr/lib/valgrind/debian-libc6-dbg.supp
--5799-- --tool=memcheck
--5799-- -v
--5799-- --workaround-gcc296-bugs=yes
--5799-- --leak-check=yes
--5799-- Contents of /proc/version:
--5799-- Linux version 3.2.0-4-486 (debian-kernel@lists.debian.org) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 Debian 3.2.51-1
--5799-- Arch and hwcaps: X86, x86-sse1-sse2
--5799-- Page sizes: currently 4096, max supported 4096
--5799-- Valgrind library directory: /usr/lib/valgrind
--5799-- Reading syms from /lib/i386-linux-gnu/ld-2.17.so (0x4000000)
--5799-- Considering /lib/i386-linux-gnu/ld-2.17.so ..
--5799-- .. CRC mismatch (computed d49800f9 wanted 7e1cc473)
--5799-- Considering /usr/lib/debug/lib/i386-linux-gnu/ld-2.17.so ..
--5799-- .. CRC is valid
--5799-- Reading syms from /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR (0x8048000)
--5799-- Reading syms from /usr/lib/valgrind/memcheck-x86-linux (0x38000000)
--5799-- Considering /usr/lib/valgrind/memcheck-x86-linux ..
--5799-- .. CRC mismatch (computed f9c53117 wanted 8a91a8b2)
--5799-- Considering /usr/lib/debug/usr/lib/valgrind/memcheck-x86-linux ..
--5799-- .. CRC is valid
--5799-- object doesn't have a dynamic symbol table
--5799-- Reading suppressions file: /usr/lib/valgrind/debian-libc6-dbg.supp
--5799-- Reading suppressions file: /usr/lib/valgrind/default.supp
==5799== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-5799-by-leon-on-???
==5799== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-5799-by-leon-on-???
==5799== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-5799-by-leon-on-???
==5799==
==5799== TO CONTROL THIS PROCESS USING vgdb (which you probably
==5799== don't want to do, unless you know exactly what you're doing,
==5799== or are doing some strange experiment):
==5799== /usr/lib/valgrind/../../bin/vgdb --pid=5799 ...command...
==5799==
==5799== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==5799== /path/to/gdb ./ownSTR
==5799== and then give GDB the following command
==5799== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=5799
==5799== --pid is optional if only one valgrind process is running
==5799==
--5799-- REDIR: 0x4017fc0 (strlen) redirected to 0x38055304 (vgPlain_x86_linux_REDIR_FOR_strlen)
--5799-- REDIR: 0x4017df0 (index) redirected to 0x380552df (vgPlain_x86_linux_REDIR_FOR_index)
--5799-- Reading syms from /usr/lib/valgrind/vgpreload_core-x86-linux.so (0x4024000)
--5799-- Considering /usr/lib/valgrind/vgpreload_core-x86-linux.so ..
--5799-- .. CRC mismatch (computed bbadfadd wanted 39de28c9)
--5799-- Considering /usr/lib/debug/usr/lib/valgrind/vgpreload_core-x86-linux.so ..
--5799-- .. CRC is valid
--5799-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so (0x4027000)
--5799-- Considering /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so ..
--5799-- .. CRC mismatch (computed 9b401e29 wanted 9e97adf8)
--5799-- Considering /usr/lib/debug/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so ..
--5799-- .. CRC is valid
--5799-- Reading syms from /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17 (0x404c000)
--5799-- Considering /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17 ..
--5799-- .. CRC mismatch (computed c3328608 wanted 737126b2)
--5799-- object doesn't have a symbol table
--5799-- Reading syms from /lib/i386-linux-gnu/i686/cmov/libm-2.17.so (0x4138000)
--5799-- Considering /lib/i386-linux-gnu/i686/cmov/libm-2.17.so ..
--5799-- .. CRC mismatch (computed 5186fef0 wanted 22262c55)
--5799-- Considering /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libm-2.17.so ..
--5799-- .. CRC is valid
--5799-- Reading syms from /lib/i386-linux-gnu/libgcc_s.so.1 (0x417b000)
--5799-- Considering /lib/i386-linux-gnu/libgcc_s.so.1 ..
--5799-- .. CRC mismatch (computed f8e2ff85 wanted ec2df6fa)
--5799-- object doesn't have a symbol table
--5799-- Reading syms from /lib/i386-linux-gnu/i686/cmov/libc-2.17.so (0x4198000)
--5799-- Considering /lib/i386-linux-gnu/i686/cmov/libc-2.17.so ..
--5799-- .. CRC mismatch (computed bc59b6d5 wanted d259ca34)
--5799-- Considering /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libc-2.17.so ..
--5799-- .. CRC is valid
--5799-- REDIR: 0x4215e30 (strnlen) redirected to 0x40245c0 (_vgnU_ifunc_wrapper)
--5799-- REDIR: 0x42173a0 (strncasecmp) redirected to 0x40245c0 (_vgnU_ifunc_wrapper)
--5799-- REDIR: 0x4215fd0 (__GI_strrchr) redirected to 0x402b630 (__GI_strrchr)
--5799-- REDIR: 0x4215d70 (__GI_strlen) redirected to 0x402ba60 (__GI_strlen)
--5799-- REDIR: 0x4215590 (strcmp) redirected to 0x40245c0 (_vgnU_ifunc_wrapper)
--5799-- REDIR: 0x42d8860 (__strcmp_ssse3) redirected to 0x402c5f0 (strcmp)
--5799-- REDIR: 0x409b8a0 (operator new[](unsigned int)) redirected to 0x402a890 (operator new[](unsigned int))
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
--5799-- REDIR: 0x40994f0 (operator delete[](void*)) redirected to 0x4029d10 (operator delete[](void*))
--5799-- REDIR: 0x4215d20 (strlen) redirected to 0x40245c0 (_vgnU_ifunc_wrapper)
--5799-- REDIR: 0x421c780 (__strlen_sse2_bsf) redirected to 0x402ba40 (strlen)
--5799-- REDIR: 0x42174d0 (memcpy) redirected to 0x40245c0 (_vgnU_ifunc_wrapper)
--5799-- REDIR: 0x42cc280 (__memcpy_ssse3) redirected to 0x402cc10 (memcpy)
--5799-- REDIR: 0x4216a80 (bcmp) redirected to 0x40245c0 (_vgnU_ifunc_wrapper)
--5799-- REDIR: 0x42e0750 (__memcmp_ssse3) redirected to 0x402d780 (bcmp)
----Referenz links------
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048C3D: darkstring::darkstring(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048993: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489A5: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b0f2 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489A5: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Invalid read of size 1
==5799== at 0x402BA53: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048AA2: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b0f2 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489A5: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
Hallo Welt--!!--!!
---Beides Referenzen----
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048C3D: darkstring::darkstring(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489C7: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80488A6: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b17c is 0 bytes after a block of size 20 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Invalid read of size 1
==5799== at 0x402BA53: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048B05: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b17c is 0 bytes after a block of size 20 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
Hallo WeltHallo Welt
---Referenz rechts------
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80488A6: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b202 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Invalid read of size 1
==5799== at 0x402BA53: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048B69: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b202 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
!!--!!--Hallo Welt!!--!!--
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x8048881: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048C3D: darkstring::darkstring(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048D44: darkstring::right(int) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B9C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x402BA4B: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x402BA57: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x4209AA7: _IO_file_xsputn@@GLIBC_2.1 (fileops.c:1303)
==5799== by 0x41FEA74: fwrite (iofwrite.c:43)
==5799== by 0x40D43D5: __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsputn(char const*, int) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x4209ABA: _IO_file_xsputn@@GLIBC_2.1 (fileops.c:1303)
==5799== by 0x41FEA74: fwrite (iofwrite.c:43)
==5799== by 0x40D43D5: __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsputn(char const*, int) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== Syscall param write(buf) points to uninitialised byte(s)
==5799== at 0x42768F3: __write_nocancel (syscall-template.S:81)
==5799== by 0x4208EE0: _IO_file_write@@GLIBC_2.1 (fileops.c:1262)
==5799== by 0x4208DC5: new_do_write (fileops.c:538)
==5799== by 0x420A41D: _IO_do_write@@GLIBC_2.1 (fileops.c:511)
==5799== by 0x4209691: _IO_file_sync@@GLIBC_2.1 (fileops.c:892)
==5799== by 0x41FDB81: fflush (iofflush.c:41)
==5799== by 0x40D40DD: __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::sync() (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x40D4EDE: std::ostream::flush() (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x40AA805: std::ios_base::Init::~Init() (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x41CB420: __run_exit_handlers (exit.c:77)
==5799== by 0x41CB4AC: exit (exit.c:99)
==5799== by 0x41B18FC: (below main) (libc-start.c:294)
==5799== Address 0x4033000 is not stack'd, malloc'd or (recently) free'd
==5799==
��¾��--5799-- REDIR: 0x42117b0 (free) redirected to 0x402a4a0 (free)
==5799==
==5799== HEAP SUMMARY:
==5799== in use at exit: 73 bytes in 5 blocks
==5799== total heap usage: 9 allocs, 4 frees, 111 bytes allocated
==5799==
==5799== Searching for pointers to 5 not-freed blocks
==5799== Checked 105,548 bytes
==5799==
==5799== 7 bytes in 1 blocks are definitely lost in loss record 1 of 5
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x8048C57: darkstring::darkstring(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048D44: darkstring::right(int) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B9C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== 10 bytes in 1 blocks are definitely lost in loss record 2 of 5
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== 18 bytes in 1 blocks are definitely lost in loss record 3 of 5
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489A5: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== 18 bytes in 1 blocks are definitely lost in loss record 4 of 5
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== 20 bytes in 1 blocks are definitely lost in loss record 5 of 5
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== LEAK SUMMARY:
==5799== definitely lost: 73 bytes in 5 blocks
==5799== indirectly lost: 0 bytes in 0 blocks
==5799== possibly lost: 0 bytes in 0 blocks
==5799== still reachable: 0 bytes in 0 blocks
==5799== suppressed: 0 bytes in 0 blocks
==5799==
==5799== Use --track-origins=yes to see where uninitialised values come from
==5799== ERROR SUMMARY: 35 errors from 22 contexts (suppressed: 0 from 0)
==5799==
==5799== 1 errors in context 1 of 22:
==5799== Syscall param write(buf) points to uninitialised byte(s)
==5799== at 0x42768F3: __write_nocancel (syscall-template.S:81)
==5799== by 0x4208EE0: _IO_file_write@@GLIBC_2.1 (fileops.c:1262)
==5799== by 0x4208DC5: new_do_write (fileops.c:538)
==5799== by 0x420A41D: _IO_do_write@@GLIBC_2.1 (fileops.c:511)
==5799== by 0x4209691: _IO_file_sync@@GLIBC_2.1 (fileops.c:892)
==5799== by 0x41FDB81: fflush (iofflush.c:41)
==5799== by 0x40D40DD: __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::sync() (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x40D4EDE: std::ostream::flush() (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x40AA805: std::ios_base::Init::~Init() (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x41CB420: __run_exit_handlers (exit.c:77)
==5799== by 0x41CB4AC: exit (exit.c:99)
==5799== by 0x41B18FC: (below main) (libc-start.c:294)
==5799== Address 0x4033000 is not stack'd, malloc'd or (recently) free'd
==5799==
==5799==
==5799== 1 errors in context 2 of 22:
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x4209AA7: _IO_file_xsputn@@GLIBC_2.1 (fileops.c:1303)
==5799== by 0x41FEA74: fwrite (iofwrite.c:43)
==5799== by 0x40D43D5: __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsputn(char const*, int) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 3 of 22:
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x402BA4B: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 4 of 22:
==5799== Invalid read of size 1
==5799== at 0x402BA53: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048B69: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b202 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 5 of 22:
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b202 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 6 of 22:
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80488A6: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A0F: operator+(char const*, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B53: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 7 of 22:
==5799== Invalid read of size 1
==5799== at 0x402BA53: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048B05: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b17c is 0 bytes after a block of size 20 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 8 of 22:
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b17c is 0 bytes after a block of size 20 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 9 of 22:
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80488A6: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489DB: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 10 of 22:
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048C3D: darkstring::darkstring(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489C7: operator+(darkstring const&, darkstring const&) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048AEF: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 11 of 22:
==5799== Invalid read of size 1
==5799== at 0x402BA53: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048AA2: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b0f2 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489A5: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 12 of 22:
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489A5: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b0f2 is 0 bytes after a block of size 18 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x80489A5: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 13 of 22:
==5799== Invalid read of size 1
==5799== at 0x8048877: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048C3D: darkstring::darkstring(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048993: operator+(darkstring const&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A8C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 1 errors in context 14 of 22:
==5799== Invalid write of size 1
==5799== at 0x8048934: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== Address 0x434b06a is 0 bytes after a block of size 10 alloc'd
==5799== at 0x402A8F4: operator new[](unsigned int) (vg_replace_malloc.c:343)
==5799== by 0x80488D2: operator+=(darkstring&, char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048A4E: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 5 errors in context 15 of 22:
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x4209ABA: _IO_file_xsputn@@GLIBC_2.1 (fileops.c:1303)
==5799== by 0x41FEA74: fwrite (iofwrite.c:43)
==5799== by 0x40D43D5: __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsputn(char const*, int) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 5 errors in context 16 of 22:
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x402BA57: strlen (mc_replace_strmem.c:390)
==5799== by 0x40D5F8D: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17)
==5799== by 0x8048BAC: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799==
==5799== 6 errors in context 17 of 22:
==5799== Conditional jump or move depends on uninitialised value(s)
==5799== at 0x8048881: mystrlen(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048C3D: darkstring::darkstring(char const*) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048D44: darkstring::right(int) (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799== by 0x8048B9C: main (in /home/leon/Desktop/Programmiersprachen/C++/Aufgaben/Operatoren/ownSTR)
==5799==
==5799== ERROR SUMMARY: 35 errors from 22 contexts (suppressed: 0 from 0)
Danke im vorraus
