gpt4 book ai didi

c - 区分字符串和字节数组?

转载 作者:太空狗 更新时间:2023-10-29 17:25:13 26 4
gpt4 key购买 nike

我有很多需要字符串作为参数的函数,为此我使用 char*,但是我所有需要字节数组的函数也使用 char*.

问题是我很容易犯在字符串函数中传递字节数组的错误,导致各种溢出,因为找不到空终止符。

这通常是怎么处理的?我可以想象更改我所有的字节数组函数以采用 uint8_t,然后当我传递一个字符串时编译器将发出有关符号的警告。或者这里的正确方法是什么?

最佳答案

我通常会制作一个类似下面的数组

typedef struct {
unsigned char* data;
unsigned long length;
unsigned long max_length;
} array_t;

然后将 array_t* 传递给周围

并创建接受 array_t* 的数组函数

void array_create( array_t* a, unsgined long length) // allocates memory, sets the max_length, zero length

void array_add(array_t* a, unsigned char byte) // add a byte

等等

关于c - 区分字符串和字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666308/

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