复制字符串的C++ strcpy

问题描述:

这里有一个短代码,但它不会编译。任何想法出了什么问题?复制字符串的C++ strcpy

char *str; 
strcpy(str, "Hello world"); 
cout << str[6] << ' ' << &str[6] << endl; 
+0

当你做到这一点,*,其中*确实指针'str'点? –

+0

对不起,它在一个int main()函数中 –

+0

另外,当发布关于构建错误的问题时,请在问题主体中包含完整的未编辑的错误。请尝试创建一个[最小,完整和可验证的示例](http://*.com/help/mcve),在其中标出出现错误的行(例如注释)。最后请[阅读关于如何提出好问题](http://*.com/help/how-to-ask)。 –

您需要为您的字符串分配内存。你应该使用malloc,它将内存分配给你的指针。

更多有关When to use malloc for char pointers

尝试用:

char *str = malloc(sizeof(char) * 1024); 
+1

这不会解决编译错误。另外,如果你解释为什么这可能有帮助,这将是有益的。 – juanchopanza

+0

'char str [16]'会更好一点IMO。 –

+0

我试了一下炭海峡[16] ,它仍然提供了相同的错误 严重\t代码\t说明\t项目\t文件\t线\t抑制状态 错误\t C4996 \t“的strcpy”:此函数或变量可能是不安全的。考虑使用strcpy_s代替。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。详细信息请参见在线帮助。 –