读缓冲区C / C ++

时间:2013-11-18 19:51:38

标签: c++ c buffer

有一个功能,我想打电话

(void) get_bytes (void * ptr, int length)

函数有两个参数 第一个是缓冲区(通过该参数将收到数据) 我要阅读的第二个数据长度。

任务是使用此函数读取10个字节,并在屏幕上打印缓冲区(以十六进制的形式)。

我试过这种方式

char *buffer = malloc(sizeof(char) * 10);
get_bytes (buffer, sizeof(buffer));
for (int i = 0; i < 10; i++) {
    printf("%s", buffer[i]);
}

但我得到printf行执行错误访问的例外, 请提供将缓冲区传递给此函数的正确方法

2 个答案:

答案 0 :(得分:4)

你可能打算写

printf("%02x", (unsigned char)buffer[i]);

因为您将字符作为字符串的地址传递,这些字符串将无法正常工作。

答案 1 :(得分:1)

get_bytes (buffer, sizeof(buffer));不正确...而不是返回char指针大小的sizeof(buffer),在这种情况下,你需要它指向的大小10

相关问题