首页 > 解决方案 > “*const char *”类型的值不能分配给“char *”类型的实体

问题描述

所以我试图避免为此使用字符串。我基本上是在尝试制作一个字符串数组。

char **hourtimes = (char**)malloc(100 * sizeof(char*));

    for (int i = 0; i < 100; i++) {
        (*hourtimes) = (char*)malloc((100 * sizeof(char)));
    }

所以我基本上在这里做了一个字符串数组

现在,我想做hourtimes[0] = "twelve";

我试着做*hourtimes = "twelve";

但我得到了同样的错误,我认为这在 c 中有效,但我使用的是 c++

hourtimes[0][0] = 't'; hourtimes[0][1] = 'w';

等工作得很好,但这太麻烦了

标签: c++stringmalloc

解决方案


*hourtimes = "twelve"设置*hourtimes为指向不可变的字符串文字。然后,您尝试修改该不可变字符串。您要做的是将“十二”复制到 *hourtimes 中。

strcpy(hourtimes[0],"twelve");

注意:这个答案是在问题被标记为 C 的时候写的。C++ 将有不同的首选方式来做这种事情。


推荐阅读