一个字符常量赋值给字符指针的疑惑,请高手赐教!
我在函数中写了如下一段语句,为什么在第二句赋值时会报错呢。
void MApp_File_Init(void)
{
char *pu8FileName = NULL;
if(A) // A 这里替代一个函数充当条件
pu8FileName = "ABC_F.xyz"; // 报错
else
pu8FileName = "DEF_S.xyz"; // 报错
MW_FileRW_Init(pu8FileName); // 原型为:void MW_FileRW_Init(char * pu8FileName);
}
整个函数就这么多了,但不知道问题究竟出在哪里。
GCC编译报错提示为 pointer targets in assignment differ in signedness。
请高手指点,如果有更好的实现也请分享出来给我参考参考,谢谢!
[解决办法]
VC6.0下没问题
char pu8FileName[256]={0};
以后赋值:使用strcpy等函数
[解决办法]
pu8FileName没有分配内存,而且字符串赋值只能在初始化的时候,否则就得用strcpy。
pu8FileName = (char*)malloc(32 * sizeof(char));
strcpy(pu8FileName, "ABC_F.xyz");