使用适当的智能指针优化下面的程序

来源:互联网 发布:pp助手mac 编辑:程序博客网 时间:2024/05/18 04:51
#include <iostream> #include <cstring> char *get(const char *s) {   int size = std::strlen(s);   char *text = new char[size + 1];   std::strncpy(text, s, size + 1);   return text; } void print(char *text) {   std::cout << text << std::endl; } int main(int argc, char *argv[]) {   if (argc < 2)   {     std::cerr << argv[0] << " <data>" << std::endl;     return 1;   }   char *text = get(argv[1]);   print(text);   delete[] text; } 
#include "boost/shared_ptr.hpp"#include <iostream> #include <cstring> boost::shared_ptr<char> get(const char *s){ boost::shared_ptr<char> txt(new char[std::strlen(s)+1]); strcpy_s(txt.get(), std::strlen(s)+1, s); return txt;}void print(boost::shared_ptr<char> text){ std::cout << text << std::endl;}int main(int argc, char *argv[]){ if (argc < 2) {  std::cerr << argv[0] << " <data>" << std::endl;  return 1; } boost::shared_ptr<char> text(get(argv[1])); print(text); return 0;}