c++ - 快速新运营商问题

标签 c++

我知道这真的很容易,我正在查看一些东西,但这就是我所拥有的......:

typedef struct
{
    char s1[81];
    char s2[81];
    char s3[81];
}Rec;

int main()
{   

   Rec *a[10];

   a[0] = (Rec*)new unsigned char(sizeof(Rec));
   a[0]->s1= "hello";
   printf("a[0] = %s\n",a[0]->s1);
   delete(a[0]);


   getchar();
   return 0;
}

现在,行

a[0]->s1= "hello";

提示表达式必须是可修改的左值。我很确定这就是我在我的新运算符(operator)行中转换它的方式并且它需要是一个长值或其他东西但我不确定执行此操作的代码......我知道很容易但是是的。任何帮助将不胜感激

最佳答案

你不能像那样分配给 char 数组。使用 strcpy,或将您的字符数组更改为 std::string

strcpy(a[0]->s1, "hello");

你为什么要这样做:

a[0] = (Rec*)new unsigned char(sizeof(Rec));

而不是这个:

a[0] = new Rec;

关于c++ - 快速新运营商问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186416/

相关文章:

c++ - std::enable_if 的两个版本有什么区别

c++ - 将 array.size() 与负值进行比较时出现 if 条件的意外行为

c++ - 改变RGBA颜色后OpenGL以16种颜色绘制

c++ - 在 C++11/14 中有效地生成随机数据字节

c++ - QVBoxLayout 问题

c++ - std::vector 的复制构造函数如何操作?

c++ - 如何将 OpenGL 数学 (GLM) 添加到 Xcode 4?

c++ - Windows:无法在谷歌上找到 SAPI 错误

c++ - CString 到 char*

c++ - 在接口(interface)文件中使用模板时函数指针出现 "not a type"错误