const char* 和 char*

2021-07-01  本文已影响0人  西贝_贾

char *向const char *转化

char * 向const char *可以直接赋值

const char *向char *转化

const char * src = "hello";

char * dest; // 
strcpy(dest, src);

delete []dest;

采用上面这种方法是不行的,在编译阶段可能不会给出错误提示,或者只给出警告,但在运行阶段会给出segmention fault的错误提示,这是因为const char * src认为src是常量,当把地址赋给char时,char能修改常量,所以错误,需要采用下列方法。

const char * src = "hello";

char * dest = new char[strlen(src)]; // dest必须申请新的地址,故要用new提前分配地址
strcpy(dest, src);

delete []dest;
上一篇 下一篇

猜你喜欢

热点阅读