读书人

字符数组有关问题

发布时间: 2012-02-26 20:19:43 作者: rapoo

字符数组问题
char *pc ="mike";//定义一个指向字符数组的指针,并初始化为“mike”
*pc = 'n' ; //通过pc取得数组第一个元素,然后赋值‘n’
运行时出错,T_T。。。不知道他的致命伤是?

[解决办法]
char *pc ="mike";//
-----
"mike"是常量字符串,不能被修改
*pc = 'n' ; //修改操作,错误

C/C++ code
    char szArr[10] = "mike";    szArr[0]  =   'n';
[解决办法]
char *pc ="mike";//定义一个指向字符数组的指针,并初始化为“mike”
//*pc指向常量字符串“mike”,没问题
*pc = 'n' ; //通过pc取得数组第一个元素,然后赋值‘n’
// *pc未分配空间,无法赋值
[解决办法]
C/C++ code
void main(){    char  *pc = "mike";        assert(!IsBadReadPtr(pc, strlen(pc) + 1));    assert(!IsBadWritePtr(pc, strlen(pc) + 1));        *pc = 'n';    } 

读书人网 >C++

热点推荐