gpt4 book ai didi

c - 二进制字符指针中的字节数

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:32 25 4
gpt4 key购买 nike

我有一个包含二进制加密字符串的 char *(使用 AES-128,这是加密输出)。

我需要计算出 char * 中有多少字节(因为 AES 128 使用 16 字节的 block 大小,它应该是 16 的倍数)。确定包含二进制数据的 char * 大小的最佳方法是什么? Strlen 和 sizeof 在这里似乎没有产生正确的结果(结果不是 16 的增量)。当我在 0 和某个任意大的数字之间循环使用 i 时,我可以通过简单地执行 printf("%d",ptr[i]) 来循环遍历字符串的 ascii 值。

这里有什么想法吗?

最佳答案

A char* 没有为其在 C 中指向的缓冲区明确定义的大小。它只是缓冲区中第一个 char 的地址,什么都没有更多的。如果您需要缓冲区的大小,请将其传递到一个单独的变量中,如下所示:

void decryptBuffer(char* buffer, size_t n)

注意:sizeof(buffer) 只会给你指针的大小,而不是它指向的字节数!

关于c - 二进制字符指针中的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5117182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com