小编Raj*_*ami的帖子

与sprintf一起使用的格式说明符%u正在创建崩溃

当我%usprintf()应用程序中使用时崩溃,它的工作正常%d

看代码:

#include <stdio.h>
#include <string.h>
main()
{
    unsigned char dAddr[4];
    unsigned char sMask[4];
    unsigned char nHop[4];
    memset(dAddr,0,sizeof(dAddr));
    memset(sMask,0,sizeof(sMask));
    memset(nHop,0,sizeof(nHop));
    unsigned int u4IpDAddr = 0x01020304;
    unsigned int u4IpSNetMask = 0xffff01ff;
    unsigned int u4NHopGt = 0x01020304;
    char *dip = (char *)&u4IpDAddr;
    char *smk = (char *)&u4IpSNetMask;
    char *nhp = (char *)&u4NHopGt;
    sprintf(dAddr, "%u.%u.%u.%u", dip[3], dip[2], dip[1], dip[0]);  //if I used %d.%d.%d.%d its working fine
    sprintf(sMask, "%u.%u.%u.%u", smk[3], smk[2], smk[1], smk[0]); //if I used %d.%d.%d.%d its working …
Run Code Online (Sandbox Code Playgroud)

c format-specifiers

-1
推荐指数
1
解决办法
736
查看次数

标签 统计

c ×1

format-specifiers ×1