C/C++结构体变量读取字符串时出错

  问题:

  使用malloc函数为结构体变量分配内存空间,

  其中的string类型变量出现了问题,即提示“读取字符串字符时出错”,无法读取内存。


分析:

  c语言中的malloc函数为静态内存分配函数,即只能分配指定内存大小的空间。而string类型就是一个字符指针,没有指定大小(由无数个char组成),如下图所示。换言之,用malloc方法为string型成员变量分配内存时即出错,因此提示“无法读取内存”。

解决:

  使用c++中的动态内存分配方法 new,即可解决问题。

关于malloc和new的具体功能区别及实现方式,读者可自行查阅资料,笔者在此不予赘述。

全部评论

相关推荐

09-15 15:53
Java
Elastic90:我看到的是东软的人在耐心回应,而那位实习生跟在发疯似的
投递东软集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务