作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 C 语言数组,假设它是
**arr = malloc(100 * sizeof(char*));
通过某个函数,我以最终成为的方式填充该数组
arr = {"first", "second", "third", "fourth", ... "tenth"};
现在,如果我想重新填充它,那么它就是
arr = {"1st", "2nd", "3rd"}; //Desired outcome
它显示为
arr = {"1st", "2nd", "3rd", "fourth", "fifth", ... "tenth"}; //Actual outcome
我确信我的代码是错误的,并且我从空填充它的函数很好,但我只是想找到一种方法来删除它。我尝试了 free(),但我要么用错了它,要么这不是我应该使用的。
你们中有人有一个函数,不仅可以将字符串设置为“\0”
,而且可以完全消除它吗?
感谢所有评论和回答的人,谢谢。
我所做的是使用文本文件、strtok 和 strdup 将文件中的单词读取到 char
双指针中。我不希望在“数组”中存储超过 5000 个单词,即使我的文件有 5001 个以上单词。
我就是这么做的。我成功地用文件中的字符串填充了内存。但如果我改变主意并尝试用较小的文件(约 30 个单词)填充内存,它会更改前 30 个文件,并让剩余的 4970 个文件保持原样,而我希望它们不存在。
最佳答案
您可以使用 realloc 函数更改 arr 变量的容量:arr = realloc(arr, 3 * sizeof(char*))
- 为 3 个元素重新分配内存。然后你应该将这 3 个元素分配给你的 arr
关于c - 如何在c中 "clear"数组为较小的数组腾出空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55301374/
我是一名优秀的程序员,十分优秀!