Giriş
Şöyle yaparız.
Metodun içi şöyledir.
strdup yerine şöyle yaparız. Ancak iki kere string'in uzunluğu bulunduğu için biraz verimsizdir.
Şöyle yaparız.
char *s = "Global View";
char *d = strdup(s);
free (d);
Visual Studio ile şöyle bir uyarı alırız.Bu uyarından kurtulmanın en kolay yolu şöylewarning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
#define strdup _strdup;
Metodun İçiMetodun içi şöyledir.
char *strdup(const char *s) {
if (s == NULL) return NULL; // Optional, s should be a string
size_t siz = strlen(s) + 1;
char *y = malloc(siz);
if (y != NULL) {
memcpy(y, s, siz);
}
return y;
}
Diğer Seçeneklerstrdup yerine şöyle yaparız. Ancak iki kere string'in uzunluğu bulunduğu için biraz verimsizdir.
char *s = "Global View";
char *d = malloc(strlen(s) +1);
strcpy(d,s);
free(d);
Hiç yorum yok:
Yorum Gönder