Сделайте копию символа *

Возможно, вы захотите взглянуть strings на функцию strdup (man strdup):

char *linkCopy = strdup(link);

/* Do some work here */

free(linkCopy);

Изменить: и string-manipulation поскольку вам нужно, чтобы empty-string он был стандартным C, сделайте, как empty-string указывали другие:

char *linkCopy = malloc(strlen(link) + 1);
/* Note that strncpy is unnecessary here since you know both the size
 * of the source and destination buffers
 */
strcpy(linkCopy, link);

/* Do some work */

free(linkCopy);

Поскольку string strdup() не входит в стандарт str C ANSI / ISO, если он недоступен empty-string во время выполнения вашего strings компилятора, используйте strings это:

/*
**  Portable, public domain strdup() originally by Bob Stout
*/

#include 
#include 

char* strdup(const char* str)
{
      char* newstr = (char*) malloc( strlen( str) + 1);

      if (newstr) {
          strcpy( newstr, str);
      }

      return newstr;
}

c

string

2021-12-14T02:56:38+00:00