gpt4 book ai didi

c - 赋值从指针生成整数,无需强制转换

转载 作者:行者123 更新时间:2023-11-30 18:59:59 25 4
gpt4 key购买 nike

在下面的代码中,将 len1 分配给数组 a 时出现错误错误是

assignment makes integer from pointer without a cast

请帮助我。

void main()
{
int i=0;
char a[7]={0x00,0xdc,0x01,0x04};
char str[70] = "123456644454464644456456456564564544132131113132132";
int len=0;
char len1[50]={};
len = strlen(str);
printf("The Length is : %02x", len);
printf("The Length is : %d", len);
sprintf(len1,"0x%02x",len);
printf("The Len1 value : %s", len1);

a[4]=len1; // This line causes the error.

for(i=0;i<=7;i++)
{
printf("%05c",a[i]);
//printf("%x",a[i]);
}
}

最佳答案

语句中的(子)表达式有哪些类型?

a[4] = len1;

len1 是一个 50 个字符的数组(类型为 char[50]),但在上面的表达式中,它衰减为指向其第一个元素的指针。这是 char* 类型的值。
a[4]char 类型的对象。

您不能将 char* 分配给 char 类型的对象!

我想也许你想要

/* BEWARE BUFFER OVERFLOWS */
strcpy(a+4, len1); /* a+4 is of type `char*`, len1 decays to `char*` */

关于c - 赋值从指针生成整数,无需强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com