【C语言】打印内存数据

C语言,用函数封装:16进制打印unsigned char *p指向的内存,长度为int l。16个字节,换一次行。16个字节用一个字符串缓存,一次打印。

以下是一个使用函数封装的C语言代码,用于以16进制格式打印unsigned char *p指向的内存,长度为int l,每16个字节换一次行,并且使用一个字符串缓存16个字节,一次性打印:

#include <stdio.h>  
#include <string.h>  
  
void printMemoryHex(unsigned char *p, int l) {  
    int count = 0;  
    char buffer[16 * 3 + 1]; // 缓存16个字节的16进制字符串  
  
    for (int i = 0; i < l; i++) {  
        sprintf(buffer + count * 3, "%02X ", p[i]);  
        count++;  
        if (count == 16) {  
            // 一次性打印16个字节的16进制字符串  
            printf("%s\n", buffer);  
            count = 0; // 重置计数器  
        }  
    }  
    if (count > 0) {  
        // 打印剩余的字节(不足16个)的16进制字符串  
        printf("%s\n", buffer);  
    }  
}  
  
int main() {  
    unsigned char *p = /* 指向内存的指针 */;  
    int l = /* 内存长度 */;  
  
    printf("内存内容(16进制):\n");  
    printMemoryHex(p, l);  
  
    return 0;  
}

在这个示例中,我们定义了一个名为printMemoryHex的函数,它接受一个指向内存的指针p和内存长度l作为参数。函数内部使用一个循环遍历内存,并将每个字节转换为16进制字符串,存储在缓存字符串buffer中。当缓存字符串填满16个字节时,我们一次性打印这16个字节的16进制字符串,并在打印后重置计数器。如果内存长度不是16的倍数,我们将打印剩余的字节(不足16个)的16进制字符串。最后,在主函数中调用printMemoryHex函数来打印内存内容。

相关推荐

  1. C语言-数据内存存储

    2023-12-26 21:04:05       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-26 21:04:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-26 21:04:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-26 21:04:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-26 21:04:05       20 阅读

热门阅读

  1. 【Unity】对象池技术

    2023-12-26 21:04:05       38 阅读
  2. arm32 arm64 读取PMCCNTR cpu cycle counter

    2023-12-26 21:04:05       69 阅读
  3. 【Git使用小技巧】一个项目使用多个远程仓库

    2023-12-26 21:04:05       43 阅读
  4. .NET 7(C#)配置使用log4net日志框架的方法

    2023-12-26 21:04:05       29 阅读
  5. 前端面试题html

    2023-12-26 21:04:05       33 阅读
  6. Day01-BootStrap

    2023-12-26 21:04:05       31 阅读