问题标签 [strdup]
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++ - strdup 指针版本需要一个临时指针
我正在实现一个 strdup 函数作为练习。
在几次失败后,我发现当返回“保存” (wiki 参考)指针时它可以正常工作,但在返回“临时”时不能正常工作。为什么在处理指针时需要直接返回 save 而不是 temp(下标数组版本不使用 save 也可以工作)?
c++ - 你如何最好地利用 wcsdup?
我正在编写代码,其中很大一部分需要返回 wchar 数组。返回 wstrings 并不是一个真正的选项(尽管我可以使用它们),我知道我可以将指针作为参数传递并填充它,但我特别希望返回指向这个宽字符数组的指针。在最初的几次迭代中,我发现我可以返回数组,但是当它们被处理和打印时,内存将被覆盖,我会留下乱码。为了解决这个问题,我开始使用 wcsdup,它修复了所有问题,但我很难准确掌握正在发生的事情,因此,什么时候应该调用它以便它工作并且我没有泄漏任何内存。事实上,我几乎每次返回一个字符串和每次返回一个字符串时都使用 wcsdup,我知道这会泄漏内存。这就是我正在做的事情。
c - strdup() 导致内存泄漏?
我已经实现了一个返回字符串的函数。它接受一个整数作为参数 ( age
),并返回一个格式化的字符串。
一切都运行良好,除了我有一些疯狂的内存泄漏。我知道 strdup() 是造成这种情况的原因,但我试图研究一些修复无济于事。
我的代码是:
Valgrind 的输出是:
非常感谢解决此内存泄漏问题的任何帮助。
c - C 中的 strdupa() - 危险和重复
我用 C 编写程序。我读到了这个strdup()
函数。据我所知,该strdup()
函数分配空间而strcpy()
没有分配空间。但问题strdup()
是它分配空间但不释放它。strdupa()
分配和释放空间。但是在某些地方,我读到该strdupa()
功能很危险。如果有人能告诉我为什么strdupa()
危险,那将很有帮助。此外,当我尝试在我的 Open Suse 12.1 32 位系统中运行程序时,gcc给出了一个错误,提示strdupa()
不存在。如果strdupa()
是一个危险的功能,有人可以告诉我strdupa()
使用该功能时要使用的副本和标题。
c - 我尝试了一个手动完成(strdup)函数工作的程序,但是在我输入字符串后它给了我一个错误
这是代码:
即使在编辑之后,它也不起作用,我试图让代码对我来说尽可能简单,所以请不要让我很难。
c - 有没有办法一次性释放一个结构的所有成员?
例如,我有以下结构:
我在链接列表中有许多 Student 结构的实例(对于许多不同的学生)。结构中的每个变量都是 strdup 的(int 除外)。
现在,在完成我的程序要执行的所有处理之后,我想添加一个函数,该函数将释放所有结构实例并释放所有已被 strdup 处理的变量。有没有办法让我快速做到这一点?
c - 当字符串文字以换行符结尾时,strdup 读取大小为 4 的无效 \n
当 src 字符串以 结尾时,我收到一个无效的读取错误\n
,当我删除时错误消失\n
:
valgrind 输出:
如何在不牺牲换行符的情况下解决这个问题?
c - 如何移动已经分配给另一个结构的内存
我有以下结构:
我已经strdup
将字符串放入结构中的name
变量中Student
。
我想知道如何将strdup
'dname
指针变量移动到TeachingAssistant
结构中,这样我就不必strdup
再这样做了。
c - 如何释放存储在结构中的 strdup'd char* 灵活数组成员?
我将 char* 灵活的数组成员存储在一个结构中。灵活数组成员中的每个值都经过 strdup 处理。我不确定如何释放每个 strdup 的值,因为我不知道我在 char* 灵活数组成员中存储了多少元素。
这是我的带有灵活数组成员的结构;
c - 如何避免每次编译代码时在编译语句中包含“-D_BSD_SOURCE”?
为了避免一大堆strdup
错误,我必须始终包含-D_BSD_SOURCE
在我的编译语句中。有没有办法我可以以某种方式将它包含在我的.c
文件中,并且永远不再将它包含在我的编译语句中。