G
g
hello!
I get a segm fault when I use strtok_r function
the code :
#ifndef CLIENT_MSG_H_
#define CLIENT_MSG_H_
#include <string>
class Client_msg
{
public:
Client_msg();
~Client_msg();
const char* data() const
{
return data_;
}
char* data()
{
return data_;
}
std::string get_user();
std::string get_service();
std::auto_ptr<std::string> get_arguments();
private:
char data_[2048];
char **last;
};
#endif /*CLIENT_MSG_H_*/
#include "Client_msg.h"
Client_msg::Client_msg()
{
}
Client_msg::~Client_msg()
{
}
std::string Client_msg::get_user()
{
std::string user(strtok_r(data_,"#",last));
return user;
}
std::string Client_msg::get_service()
{
std::string service(strtok_r(data_,"#",last));
return service;
}
std::auto_ptr<std::string> Client_msg::get_arguments()
{
std::auto_ptr<std::string> arguments(new
std::string(strtok_r(data_,"#",last)));
return arguments;
}
any idea ??
thanks in advance,
I get a segm fault when I use strtok_r function
the code :
#ifndef CLIENT_MSG_H_
#define CLIENT_MSG_H_
#include <string>
class Client_msg
{
public:
Client_msg();
~Client_msg();
const char* data() const
{
return data_;
}
char* data()
{
return data_;
}
std::string get_user();
std::string get_service();
std::auto_ptr<std::string> get_arguments();
private:
char data_[2048];
char **last;
};
#endif /*CLIENT_MSG_H_*/
#include "Client_msg.h"
Client_msg::Client_msg()
{
}
Client_msg::~Client_msg()
{
}
std::string Client_msg::get_user()
{
std::string user(strtok_r(data_,"#",last));
return user;
}
std::string Client_msg::get_service()
{
std::string service(strtok_r(data_,"#",last));
return service;
}
std::auto_ptr<std::string> Client_msg::get_arguments()
{
std::auto_ptr<std::string> arguments(new
std::string(strtok_r(data_,"#",last)));
return arguments;
}
any idea ??
thanks in advance,