c - 如果满足条件,每次迭代都可以扩大数组吗?

标签 c malloc

我有这个结构

typedef struct
{
    int numberPipes;              // |
    int numberAmpersands;         // &
    int existsBiggerThan;         // >
    int existsLessThan;           // <
    int existsDoubleLargerThan;   // >>

} lineData;

然后我在 char 数组 (char*) 上循环运行,以便找到 '&''|'< 的所有索引

我不知道要找到多少 '&''|' 。是否可以从两个数组开始(使用malloc) 大小为 1 并在每次迭代后将它们放大,只有当我发现其中一个再次出现时?

最佳答案

您可以通过调用 realloc 来做到这一点.

出于性能原因,最好不要为每个新元素调用它,而是在 X 个元素中调用一次,这样可以减少对 malloc/realloc 的调用次数>.

关于c - 如果满足条件,每次迭代都可以扩大数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665904/

相关文章:

c - if条件后跟while(0)有什么用?

c - 如何正确分配结构体和某些变量?

c - 插入二叉搜索树

c - 如何为查询字符串正确分配内存?

malloc - (仅限 XCode 7 + iOS 9 + iPhone 4s/iPhone5)问题 : "malloc: *** mach_vm_map(size=1048576) failed (error code=3)"

c - c中的字符串相似度

c - 从 C 中的文件中读取 int 或 float

c - 适当的 malloc 错误修复

c - 在 C 中使用 MPI 出现段错误?

c - printf 数组的整个单元