我有一个函数,它在C中有输入和指向char数组的指针。在这个函数中,我正在操作主字符串,但是在使用它之前,我想在另一个变量中制作一个备份副本。我想把它放在char backup2000中,这样即使指针改变了,备份也不会改变。我该怎么做呢?
发布于 2011-03-23 17:01:26
void function (const char *string)
{
char *stringcopy = malloc (1 + strlen (string));
if (stringcopy)
strcpy (stringcopy, string);
else fprintf (stderr, "malloc failure!"):
...
do whatever needs to be done with `stringcopy`
}
发布于 2011-03-23 17:07:46
为了在C中复制字符串,有一个名为strdup
的库函数专门为此而生:
使用free
后,必须释放由strdup
分配的内存。
strdup
在一个步骤中提供内存分配和字符串复制操作。如果在某个时间点上要复制的字符串恰好大于数组的大小,则使用char数组可能会出现问题。
发布于 2011-03-23 20:56:09
您的好友具有以下功能
但最重要的是,最好的朋友是man :)
https://stackoverflow.com/questions/5408871
复制