gpt4 book ai didi

c - 在 C 中的循环内分配和释放内存

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

<分区>

我有一个关于如何在 C 中制作临时字符串的问题。我的意思是我想在每个迭代步骤中创建一个字符串并在它不再有用后释放该变量。我见过与此类似的问题,但它们在显着方面有所不同。

所以现在我有类似的东西:

for (int i = 0; i < array_size; i++) {
//aray1 and array2 are arrays of strings
char* temporary_value = make_hash(array1[i], array2[i], size[i]);
if (is_valid(temporary_value)) {
//Code, that doesn't interferate in memory, but uses temporary_value - mostly just compare to it
}
free(temporary_value);
}

其中 make_hash 根据 size[i] 分配内存。

但是感觉好不对,有时候会返回segment fault。我的改进想法是:

  • 制作字符串数组并在循环后释放它
  • 将“make_hash”代码放入 for 循环中,并在迭代期间重新分配内存并在 for 循环后释放 temporary_value

但这些解决方案似乎也很糟糕。你会如何处理这类问题?

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