【发布时间】:2011-03-30 19:51:03
【问题描述】:
我一直在用 c++ 解决一个问题,但我陷入了困境。 这是一个很长的代码,但我只会在我现在卡住的地方发布一小部分。在这里;
char* x = (char*)malloc(sizeof(char));
char y = (char)malloc(sizeof(char));
y = *x;
问题是当我这样做时,如果 X 指向一个名为“HELLO”的字符,当我打印 y 时它只打印“H”字母。
我想将 char* 的整个单词复制到一个 char 变量中。我也不知道字符的大小,因为它们是由用户给出的。所以长度可以是任何东西。我尝试了 strcpy() 但无法解决问题。
任何帮助表示赞赏。
**感谢所有cmets。现在我决定根据您的 cmets 使用 std::string 。我想我再也不会使用 malloc 了。现在我必须回到代码并根据字符串更改所有内容并检查是否一切正常。
【问题讨论】:
-
如果这是 C++,你应该在尝试 malloc() 之前学习 std::string。
-
如果这真的是 C++,你可能不应该使用
malloc而你可能应该使用std::string类型。 -
不要在 C++ 中使用
malloc和free- 查看new和delete进行内存管理。 -
关于编辑:当有人忘记
#include <string>时,MSVC++ 上通常会看到“没有运算符匹配这些操作数”。另外,你不应该new ifstream,它只是ifstream inFile("C:\\Temp\\AAA.txt"); -
@Cubbi,我发现我忘记了
并在任何 cmets 之前添加了它。但是根据您的评论,我尝试了 ifstream inFile("C:\\Temp\\AAA.txt");但它给出了错误。新的有什么问题,如果完全错误,我怎么能像你说的那样写。