My progremmer can't run,why??
-
#include <iostream>
#include <string>
using namespace std;class CBuffer
{
char * m_pBuffer;
int m_size;
public:
CBuffer()
{
m_pBuffer=NULL; }
~CBuffer()
{
Free();
}
void Allocte(int size) (3) {
m_size=size;
m_pBuffer= new char[size];
}
private:
void Free()
{
if(m_pBuffer!=NULL)
{
delete m_pBuffer;
m_pBuffer=NULL;
}
}
public:
void SaveString(const char* pText) const
{
strcpy(m_pBuffer, pText);
}
char* GetBuffer() const
{
return m_pBuffer;
}
};int main ()
{
CBuffer buffer1;
buffer1.SaveString("Microsoft");
printf("%s", buffer1.GetBuffer());
return 0;
} -
#include <iostream>
#include <string>
using namespace std;class CBuffer
{
char * m_pBuffer;
int m_size;
public:
CBuffer()
{
m_pBuffer=NULL; }
~CBuffer()
{
Free();
}
void Allocte(int size) (3) {
m_size=size;
m_pBuffer= new char[size];
}
private:
void Free()
{
if(m_pBuffer!=NULL)
{
delete m_pBuffer;
m_pBuffer=NULL;
}
}
public:
void SaveString(const char* pText) const
{
strcpy(m_pBuffer, pText);
}
char* GetBuffer() const
{
return m_pBuffer;
}
};int main ()
{
CBuffer buffer1;
buffer1.SaveString("Microsoft");
printf("%s", buffer1.GetBuffer());
return 0;
}And what is the problem exactly ?
Cédric Moonen Software developer
Charting control [v3.0] OpenGL game tutorial in C++ -
And what is the problem exactly ?
Cédric Moonen Software developer
Charting control [v3.0] OpenGL game tutorial in C++ -
#include <iostream>
#include <string>
using namespace std;class CBuffer
{
char * m_pBuffer;
int m_size;
public:
CBuffer()
{
m_pBuffer=NULL; }
~CBuffer()
{
Free();
}
void Allocte(int size) (3) {
m_size=size;
m_pBuffer= new char[size];
}
private:
void Free()
{
if(m_pBuffer!=NULL)
{
delete m_pBuffer;
m_pBuffer=NULL;
}
}
public:
void SaveString(const char* pText) const
{
strcpy(m_pBuffer, pText);
}
char* GetBuffer() const
{
return m_pBuffer;
}
};int main ()
{
CBuffer buffer1;
buffer1.SaveString("Microsoft");
printf("%s", buffer1.GetBuffer());
return 0;
}In your constructor you set buffer to NULL. In your main function you just create an instance of CBuffer and call SaveString. SaveString accesses your buffer (what is NULL), so you get an access violation.
int main ()
{
CBuffer buffer1;
buffer1.Allocate(4096); // allocate some buffer for your string!
buffer1.SaveString("Microsoft");
printf("%s", buffer1.GetBuffer());
return 0;
}Greetings Covean
-
What I meant is: try to give more details. "It doesn't work" is way too vague. Did you have a compilation error, a run-time crash, your computer exploded, ... ? Keep in mind that we can't see what's on your screen.
Cédric Moonen Software developer
Charting control [v3.0] OpenGL game tutorial in C++ -
And what is the problem exactly ?
Cédric Moonen Software developer
Charting control [v3.0] OpenGL game tutorial in C++wbgxx wrote:
"Microsoft"
?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
#include <iostream>
#include <string>
using namespace std;class CBuffer
{
char * m_pBuffer;
int m_size;
public:
CBuffer()
{
m_pBuffer=NULL; }
~CBuffer()
{
Free();
}
void Allocte(int size) (3) {
m_size=size;
m_pBuffer= new char[size];
}
private:
void Free()
{
if(m_pBuffer!=NULL)
{
delete m_pBuffer;
m_pBuffer=NULL;
}
}
public:
void SaveString(const char* pText) const
{
strcpy(m_pBuffer, pText);
}
char* GetBuffer() const
{
return m_pBuffer;
}
};int main ()
{
CBuffer buffer1;
buffer1.SaveString("Microsoft");
printf("%s", buffer1.GetBuffer());
return 0;
}