问题标签 [realloc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 将动态数组传递给 C 中的函数
我正在尝试创建一个函数,该函数将数组作为参数,向其添加值(必要时增加其大小)并返回项目数。到目前为止,我有:
如果 mSize 足够大以容纳数组的所有潜在元素,则此方法有效,但如果需要调整大小,则会出现分段错误。
我也试过:
无济于事。
我认为这是因为当我调用 realloc 时,'a' 的副本指向其他地方 - 如何修改它以使 'a' 始终指向相同的位置?
我这样做对吗?有没有更好的方法来处理 C 中的动态结构?我应该实施一个链接列表来处理这些吗?
c - realloc 和 memcpy 是如何工作的?
我有两个问题。
realloc()
以比仅迭代每个元素更快的方式将数组中的memcpy()
条目复制到另一个数组中吗O(N)
?如果答案是肯定的,那么您认为它的复杂性是什么?如果分配的大小小于原始大小,是否
realloc()
将条目复制到其他地方,或者在它们减小数组大小时将它们保留?
arrays - 简单的 C 代码,带有令人烦恼的“分配中不兼容的类型”错误
只是一个简单的程序来习惯指针。该程序应该以与读取内存的相反顺序将我的一部分内存的内容放入字符数组中。IE查看降序内存地址,我想将它按降序存储在字符数组中。
我的编译器一直告诉我:“赋值错误类型不兼容”
用realloc函数就行了
我究竟做错了什么?在我看来,“反向”和realloc的结果都应该是指向 char 类型的指针?
我的代码:
谢谢!
编辑:对不起,我将这些错误发布为下面的评论
感谢帮助,第一条和第二条评论搞定了!我确实有所需的#include,我只是忘记将它们复制到堆栈溢出中。你是对的,现在我被困在非空终止的 strlen() 上。我会自己解决那个。再次感谢!
我说得太早了,编译好了,但是有逻辑错误。while 循环将执行一次。但是,无论 i 的初始值如何,后续循环仍然会失败。导致失败的行是调用 realloc 的行
c++ - 关于在 C++ 代码中使用 realloc 实现的问题
朋友们
在我们的 C++ 中,我目前使用 realloc 方法来调整 malloc 分配的内存大小。realloc() 用法如下完成
现在维基百科(_http://en.wikipedia.org/wiki/Malloc)说
如果相反,一个
那么如果无法获得 big_size 字节的内存,p 的值为 NULL,并且我们不再有指向先前为 p 分配的内存的指针,从而造成内存泄漏
它还说纠正上述错误的正确方法是
你能告诉我哪个是使用 realloc() 的最佳方式吗
同样,一旦我有了指向结构的指针,然后在稍后使用 realloc 时,我可以使用指向 void 的指针吗?
非常感谢
c++ - Realloc()/在 C++ 中调整对象的大小以实现字符串
当它们在内存中表示时,C++ 对象是否与 C 结构相同?
例如,使用 C,我可以做这样的事情:
我不认为 C++ 允许+
为内置char *
类型重载运算符。
所以我想创建我自己的轻量级字符串类,它没有额外的开销std::string
。我认为std::string
是连续表示的:
我想要完全相同的功能,但没有前缀长度(节省 8 个字节的开销)。
这是我用来测试的代码,但它会导致段错误
编辑:没有人真正了解我想做什么。是的,我知道我可以在类中有一个指向字符串的指针,但这比普通的 cstring 贵 8 个字节,我想要完全相同的内部表示。谢谢你的尝试
编辑:与使用 strcat 等相比,我想要实现的最终结果是能够使用 + 运算符而没有额外的内存使用
c - 使用 realloc 调整缓冲区大小
如果指向的区域被移动,则执行 free(ptr)。
你能解释一下上面的行realloc()
吗?此行来自 calloc、malloc、realloc 和 free 的手册页。
c++ - realloc 在以前稳定的函数中崩溃
显然 SDL_Mixer 中的这个函数一直在消亡,我不知道为什么。有没有人有任何想法?根据 Visual Studio 的说法,崩溃是由 Windows 在 realloc() 行中的某处触发断点引起的。
有问题的代码来自 SDL_Mixer 的 SVN 版本,如果这有所作为的话。
我正在使用 Visual Studio 2008,music_decoders 和 num_decoders 都是正确的(music_decoders 包含一个指针,指向字符串“WAVE”和 music_decoders。ptr 是 0x00000000,我能说的最好的,崩溃似乎是在 realloc () 函数。有谁知道我该如何处理这个崩溃问题?如果归根结底,我不介意为了使这项工作正常进行一些重构。
c - **struct 的 realloc 问题
我在 C 中使用 realloc 函数时遇到问题。我将以下代码传递给您:
我没有发送第一个分配代码,但如果我增加我在那里使用的项目数量,一切正常。当我调用 realloc 时,我收到了这样的错误:
malloc:对象 0x19dba8 的 *** 错误:未分配正在重新分配的指针
你能帮我解决我的问题吗?
Pool的创建方法如下:
就像我说的,如果我想插入 1000 个项目并通过 create 函数分配内存,那么如果我声明 100 个元素的启动池大小然后我想重新分配项目,那么一切正常,我得到了错误。
非常感谢你这么快的回答。
c - 重新分配问题
感谢您的关注,请忽略- 各种恶作剧正在发生,我正在尝试更多调试。
======================================
谁能解释 realloc 的这种行为?
输出:
代码:
它在重新分配之后从开始删除“ncryp”;但这不应该发生....
编辑:更多代码,更多输出
最后编辑:
我不知道现在发生了什么。带有和不带有调试标志的程序的不同运行会产生不同的输出。我将回到绘图板并使用 valgrind 查找内存错误。