c - 在 C 语言中声明数组类型是否是错误的编程习惯?

标签 c arrays struct typedef

我有一堆不同长度的数组,我想让长度接近数组,定义这样的东西是不是不好的编程习惯?

typedef struct Array {
  long len;
  int* buf;
} Array;

这有什么明显的缺点或陷阱吗?

最佳答案

不,不一定。您将需要使用指针传递缓冲区的长度,以确保您不会超出它。由于额外的取消引用,这将对性能造成轻微影响,但如果始终具有可用长度可以避免导致错误,那么这可能是一个值得的权衡。您需要确保在调整缓冲区大小时更新长度,并确保在释放结构时释放缓冲区。除此之外,这对我来说很有意义,这也是许多其他高级语言在其数组实现中所做的事情。

关于c - 在 C 语言中声明数组类型是否是错误的编程习惯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56963030/

相关文章:

c++ - 通过参数给指针赋值

c - 在 VC++ 中正确实现 Dll 和库

ios - NSPredicate 过滤字典数组(Swift)

android - 如何在 Android NDK 中比较两个 jbyte 数组

c++ - 函数调用上下文中的字符指针、字符数组和字符串

c - 调查 Valgrind 无效读取

c++ - 远程读写结构

c++ - 在 C++ 项目中使用共享库的问题

C 线程行为不正确 - 简单代码

c - 防止 gcc 内联函数