分配到类型' char [5]'时不兼容的类型来自类型' char *'

时间:2015-05-03 21:09:28

标签: c

char types[5];
        switch(buffer[9]){
            case 1:
                types = "ICMP";
                break;

错误:

 incompatible types when assigning to type 'char[5]' from type 'char *'

我该如何修复此错误?

感谢。

1 个答案:

答案 0 :(得分:0)

您无法在不更改类型的情况下修复它。

数组值不是可修改的l值。如果您计划始终为其分配字符串文字,请将其声明为const char *而不是数组:

const char *types;
switch(buffer[9]){
    case 1:
    types = "ICMP";
    break;

如果您想稍后更改types的内容,请将其保留为数组,然后使用strcpy()或更安全的变体strncpy()

char types[5];
switch(buffer[9]){
    case 1:
    strncpy(types, "ICMP", sizeof(types));
    break;