为什么把函数的内容提取出来能正常运行,使用函数就出问题??

想写一个将常量指针的内容赋值给非常量指针,但是很简单的问题却一直出问题,这是怎么回事呢?
顺便问一下各位佬,怎么以const char作为形参给char 赋值,感觉构造函数用的应该挺多的。

img

img

因为函数里的字符数组,在函数结束后,内存就被释放了,所以返回字符数组首地址,其数据也就不对了。

str应该定义为一个数组,比如str[10]。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7483311
  • 这篇博客你也可以参考下:const char*类型的值不能用于初始化char*类型的实体
  • 除此之外, 这篇博客: 关于宏定义的理解中的 (2)再来看#@x,其实就是给x加上单引号,结果返回是一个const char。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 举例说:

    char a = ToChar(1);结果就是a=‘1’;
    做个越界试验char a = ToChar(123);结果就错了;
    但是如果你的参数超过四个字符,编译器就给给你报错了!

    error C2015: too many characters in constant :P