当前位置: 首页 > news >正文

企业网站制作查询电子商务网站开发教程课本例题

企业网站制作查询,电子商务网站开发教程课本例题,腾讯朋友圈广告投放价格,外贸网店怎么开店点击 C 语言编程核心突破 快速C语言入门 混用 C 与 C 的 calloc 和 new 导致的问题 前言一、问题代码二、使用new总结 前言 要解决问题: 同样的代码, 含有std::string的结构, 在gcc环境通过calloc可以赋值, 但是在VS下不行 想到的思路: std::string不是平凡类, 按道… 点击 C 语言编程核心突破 快速C语言入门 混用 C 与 C 的 calloc 和 new 导致的问题 前言一、问题代码二、使用new总结 前言 要解决问题: 同样的代码, 含有std::string的结构, 在gcc环境通过calloc可以赋值, 但是在VS下不行 想到的思路: std::string不是平凡类, 按道理不能通过calloc初始化, 会产生问题, 但神奇的gcc却貌似可以正常运行. 其它的补充: 混用C和C真的不是一个好的习惯, 尤其涉及内存分配问题. 一、问题代码 #include cstdlib #include iostream #include string#define MAX_PERSON_COUNT 3struct Person {std::string m_name;int age; };int main() {std::string name;std::cin name;Person *test static_castPerson *(calloc(MAX_PERSON_COUNT, sizeof(Person)));test-m_name name;std::cout test-m_name;return 0; } 在struct Person中有一个std::string, 在C中, 这是一个需要初始化的元素, 但是calloc不能调用构造函数, 只会分配一块内存, 且内存中的数据都是0. 然而神奇的是, 在gcc环境下, 可以给没有初始化的string赋值, 我们简单分析一下, 如果string的构造是一个指向字符串的指针, 以及一个代表字符长度的整型值, 那么在进行赋值的时候, 会重新开辟一块内存, 并将其地址传递给string内部的指针, 并将字符串拷贝过去 同时, 记录长度的值也传递给字符串的记录长度值的成员变量. 但为了保证性能, 可能string在初始化时默认分配一个足够大的空间, 处理小字符串, 如果在赋值时, 长度未超过这个范围, 直接拷贝字符串到内存中, 那此时calloc不能初始化的string在赋值时, 就有了隐患. 而我们不能保证string的具体实现, 所以, 用calloc分配带有非平凡类的string也就不能保证是否可用. 二、使用new #include cstdlib #include iostream #include string#define MAX_PERSON_COUNT 3struct Person {std::string m_name;int age; };int main() {std::string name;std::cin name;Person *test new Person[MAX_PERSON_COUNT];// static_castPerson *(calloc(MAX_PERSON_COUNT, sizeof(Person)));test-m_name name;std::cout test-m_name;return 0; } 用new就意味着, 在C中, 编译器会将结构当作类来处理, 使用默认构造函数, 那么string会被正确初始化, 无论它是如何实现的, 在任何编译器将可正确运行. 总结 混用C和C并不是一个好的习惯, 同时, 这是两种语言, 虽然绝大部分是兼容的, 但我相信, 绝大部分人无法区分, 在任意编译器下, 它们的区分究竟是什么, 这里坑恐怕不少, 如果你有试错的本钱, 可随意, 但如果没有, 还是让上帝的归上帝, 凯撒的归凯撒吧. 点击 C 语言编程核心突破 快速C语言入门
http://www.zqtcl.cn/news/354060/

相关文章:

  • 类似携程网的网站wordpress文章摘要调用
  • 好网站建设公司开发方案联盟营销的网络营销方式
  • logo免费生成网站洛阳网络建站公司
  • 建设工程部网站百度指数功能
  • 个人网站 商业时事新闻2022最新10月
  • 不会代码 怎么做网站网站视频管理系统
  • 网站空间 流量网上卡片制作
  • 网站排名seo软件机关网站源码
  • 网站手机端页面怎么做手机之家
  • 成都电子商务网站大庆城市投资建设网站
  • 电子商务网站费用wordpress 怎么手动更新
  • 中国空间站设计在轨飞行多少年南昌网站建设风格
  • 用php写的网站有哪些暖暖 视频 在线 观看 高清
  • 云空间网站怎么做海南旅游网网页制作
  • 常宁网站免费的ai作图软件
  • 网站建设讲师招聘如何做电商产品推广
  • 让百度收录网站网站开发流程进度表
  • 有几个网站能在百度做推广产品开发管理系统
  • 一个网站项目的价格表dz论坛seo
  • 企业做网站要多少钱哪个网站做动图
  • 知名企业网站例子4s店网站模板
  • 网站建设的信息安全防范技术初级买题做哪个网站好
  • 品牌营销网站建设东莞智通人才招聘网
  • 莒县建设局网站好的网站具备什么条件
  • 威海网站建设怎么样网上怎么推销自己的产品
  • 网站做SEO优化网站建设背景图片大小的修改
  • 看企业网站怎么做到百度秒收WordPress怎么可以上传图片
  • 欧洲手表网站简述jsp网站架构
  • 网站搜索排名优化软件flash xml网站
  • 匀贵网站建设亿级别网站开发注意