以下代码显示整数值:

for ( i=0 ; i<COL ; i++ )
{
    fprintf(iOutFile,"%02x ",(int)(iPtr[offset]));
}


我想将这些整数值作为字符串存储在字符指针中。为此,我尝试了以下代码,但它不起作用。

    char *hexVal="";
    char *temp;
    int val;

    for ( i=0 ; i<COL ; i++ )
    {
       fprintf(iOutFile,"%02x ",(int)(iPtr[offset]));
       val = (int)(iPtr[offset]);
       temp=(char*) val;
       hexVal = strcat(hexVal,temp);
    }
    printf("%s", hexVal);


谢谢....

最佳答案

当你写

char* hexVal = "";


您将hexVal设置为指向字符串文字,随后在代码中尝试将strcat指向该地址,这将导致未定义的行为。

您需要做的是分配足够大的区域来容纳您生成的字符串,然后让hexVal指向该区域。

例如。

char* hexVal = malloc(100); // or how much bytes you need


然后做

strcat(hexVal, temp);


alt。在堆栈上分配

char hexVal[100];

关于c - 将整数值存储为C中的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26753403/

10-11 22:08