330得票11回答
strdup() - C语言中它是什么作用?

strdup() 函数在C语言中的目的是什么?

90得票6回答
strcpy和strdup的区别

我了解到strcpy函数用于复制字符串,而strdup函数返回指向新字符串的指针以复制该字符串。 您能否解释一下在哪些情况下您更喜欢使用strcpy和在哪些情况下您更喜欢使用strdup?

71得票7回答
strdup还是_strdup?

当我在Microsoft Visual C++中使用strdup时,会出现警告: 警告 C4996:'strdup':此项的POSIX名称已弃用。请改用符合ISO C++标准的名称:_strdup。有关详细信息,请参见在线帮助。 因此,似乎_strdup是正确的。 但是,当我在G...

21得票4回答
strdup():对警告信息困惑('implicit declaration'、'makes pointer...without a cast'、内存泄漏)

当我编译下面这段简短的代码(我们定义一个字符串,然后使用strdup进行复制),我收到了3个警告:2个来自GCC编译器的警告和1个由valgrind报告的运行时警告/错误。 我怀疑内存泄露错误(由valgrind报告)也与我的使用strdup有关,这就是为什么我在下面包含相关输出的原因。 ...

20得票4回答
Obj-C: strdup帧中48字节的malloc内存泄漏

我的应用程序中出现了多个内存泄漏问题。对象是Malloc 48字节,它总是来自于负责调用strdup的原始调用者。该对象的历史记录仅显示它被Malloc,没有其他的retain或release。堆栈跟踪不显示我的代码。我能够挑选出的唯一相关部分是: 10 UIKit _UIGestureRe...

15得票7回答
strdup()函数

我最近意识到,我一直在OS X上使用的strdup()函数并不是ANSI C的一部分,而是POSIX的一部分。我不想重写所有的代码,所以我想我会写自己的strdup()函数。它其实并不难,只需要一个malloc()和一个strcpy()。无论如何,我有了这个函数,但如果我编写这个函数并将其链接...

15得票6回答
C语言中的'memdup'函数是什么?

在C语言中,你可以使用strdup函数来简洁地分配一个缓冲区并将一个字符串复制到其中。但就我所知,对于一般的内存操作,没有类似的函数。例如,我无法像这样说: TBDstruct myStruct *foo = malloc(sizeof(struct myStruct)); fill_myS...

13得票4回答
如何使用strdup?

我正在调用 strdup 函数,在调用 strdup 之前需要为变量分配空间。char *variable; variable = (char*) malloc(sizeof(char*)); variable = strdup(word); 我这样做对吗?还是有什么地方出了问题?

12得票3回答
如何避免“null argument where non-null required”的编译器警告。

编译以下代码:#include <string.h> #define FOO (NULL) int main(int argc, char *argv[]) { char *foo; if (FOO) foo = strdup(FOO); ...

11得票1回答
我应该在 C 语言中的 basename/dirname 函数后释放 strdup 指针吗?

我想使用POSIX的basename函数(而不是GNU的)。 从手册中可以得知: dirname()和basename()都可能修改path的内容,因此在调用这些函数时最好传递副本。 这些函数可能返回指向静态分配内存的指针,该内存可能会被后续调用覆盖。 或者它们可能返回指向...