error: incompatible types in assignment of 'const char [9]' to 'char [64]'

记录下一些不小心犯的错误。

#define MAX_SIZE   64

char  a[MAX_SIZE];

a ="12345678";

 error: incompatible types in assignment of 'const char [9]' to 'char [64]'                          

 可以用 strcpy解决问题
char * strcpy(char * Dest,const char * Source);

 

参考:

https://blog.csdn.net/u013308744/article/details/51543967

错误 "incompatible types in assignment of 'char*' to 'char [10]'" 是在C语言编程中常见的类型不兼容错误。它发生在尝试将一个指向字符的指针(char*)赋值给一个固定大小的字符数组(char [10])时。在C语言中,这两种类型代表了不同的内存分配方式,数组分配是静态分配,而指针可以指向动态分配的内存。 要解决这个错误,你需要确保赋值操作符合类型的兼容性。这可能意味着要进行类型转换,或者如果可能的话,修改代码逻辑,确保赋值操作不会违反类型安全。例如,如果一个函数返回的是一个指向字符的指针,而你有一个字符数组,你应该创建一个与数组大小相匹配的缓冲区来接收指针指向的数据,而不是直接赋值。 下面是一个例子来说明这个错误: ```c char* ptr = "some text"; // ptr 是一个指向字符的指针 char array[10]; // array 是一个字符数组,有10个字符的空间 // 尝试将指针赋值给数组,这将导致错误 array = ptr; // [Error] incompatible types in assignment of 'char*' to 'char [10]' ``` 为了解决这个错误,你可以这样做: ```c // 首先确保目标数组足够大以容纳要复制的字符串 // 这里假设ptr指向的字符串长度不会超过数组大小减去1(为了空字符'\0') char array[11]; // 10个字符加上1个空字符 strncpy(array, ptr, sizeof(array) - 1); array[sizeof(array) - 1] = '\0'; // 确保字符串以空字符结尾 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值