C程序执行错误

标签 c

我的代码在这里。当我尝试执行时,我收到错误左值需要作为程序第二行赋值的左操作数...任何人都可以帮助我吗?

void main()
{

    unsigned char name[10]="ERPDIR",buff[30];
    (char *)buff = ASCII2HEX(name,buff);
    printf("The HEX Value is %s\n", buff);

}
char *ASCII2HEX(unsigned char *Response,unsigned char *buff)
{
    int len,hexlen=0,i=0;
    unsigned char BUFF[512]="";
#ifdef PRINT_CONSOLE
    printf("\n###### ASCII2HEX:");
#endif
    len = strlen((char*)Response);
    for(i=0;i<len;i++)
    {
        sprintf((char*)BUFF+(2*i),"%02X",Response[i]);
#ifdef PRINT_CONSOLE
        printf("%02X ",Response[i]);
#endif
    }
    printf("\n");
    BUFF[2*i]='\0';
    hexlen=len;
    memset(buff,0,sizeof(buff));
    AsciiStr2HexByte((const char*)BUFF,len*2,buff,&hexlen);
    buff[hexlen]='\0';
    return 0;
}

最佳答案

尝试使用这一行,即不进行赋值,仅进行函数调用:

ASCII2HEX(name,buff);

您的例程已经在修改 buff,因此不需要对其进行分配。

关于C程序执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147987/

相关文章:

c - 在 c11 中支持 BitSet

c - 简单的 C 内联链接器错误

c - C中使用指针的子字符串

C编程,动态分配+链表

c++ - 如何将写入标准输出的数据保存到本地缓冲区

c - 有没有更有效的方法在不使用数组的情况下使用指针对整数进行排序?

C:程序在完成 for 循环之前崩溃

c - 关于 vfork() 系统调用?

C - 内存映射一个 B 树

c - 如何在 C99 中正确内联和使用内联函数,更正链接失败?