一个 char* 和 std::string 的问题
代码:
#include <cstdio>#include <netinet/in.h>#include <arpa/inet.h>#include <string>using namespace std;std::string ip2str(const uint32_t& ip_num){ struct in_addr ip_addr; ip_addr.s_addr = htonl(ip_num); return std::string(inet_ntoa(ip_addr));}char* ip2str_char(const uint32_t& ip_num){ struct in_addr ip_addr; ip_addr.s_addr = htonl(ip_num); return inet_ntoa(ip_addr);}int main(){ printf("ip2str : %s, %s\n", ip2str(0xFFFF0000).c_str(), ip2str(0).c_str()); printf("ip2str_char: %s, %s\n", ip2str_char(0xFFFF0000), ip2str_char(0)); return 0;}$ ./inline ip2str : 255.255.0.0, 0.0.0.0ip2str_char: 255.255.0.0, 255.255.0.0$