六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

std::string 和 c 的字符串

[复制链接]

升级  69.33%

44

主题

44

主题

44

主题

秀才

Rank: 2

积分
154
 楼主| 发表于 2013-1-26 12:34:31 | 显示全部楼层 |阅读模式
Tags:

std::string 的初始化碰到一个问题, 拿一个 char* 的指针当构造函数的指针, 运行时出现:

terminate called after throwing an instance of 'std::logic_error'
what():  basic_string::_S_construct NULL not valid

已放弃

原因在于没搞清, char *型的变量和指向 c 风格的字符串指针的区别.

char *cp = NULL;     cp是一个char*变量

char *str = "Hello";  str是一个指向 c 风格的字符串指针.

std::string 的构造函数需要的是一个 c 风格的字符串指针(要求以字符 null 结尾), 而不是一个char *的变量. 所以运行时出了上述错误.

另外, 很多 c 标准函数, 函数明确说明, 需要一个 c 风格的字符串. 虽然char * 和指向 c 风格的字符串指针的代码看起来都是 char *, 但是含义上有本质的区别.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表