strdup实现

char * strdup(char *str)
{
   char * strNew;
   assert(str != NULL);
   strNew = (char *)malloc(strlen(str)+1);
   strcpy(strNew,str);
   return strNew;
}    
时间: 2024-10-12 19:16:29

strdup实现的相关文章

系统函数C字符串的实现(5):strdup

strdup不需要分配内存空间,自动实现字符串的拷贝 char *mystrdup(char *str) { char*p = malloc(sizeof(char)*(strlen(str) + 1)); strcpy(p, str);//拷贝 return p; } /*函数名: strdup 功 能: 将串拷贝到新建的位置处 用 法: char *strdup(char *str); */ //strcpy的变形 void main() { char str[14] = "rocket-黑

strdup函数的使用方法

函数名: strdup 功  能: 将串复制到新建的位置处 用  法: char *strdup(char *str): 这个函数在linux的man手冊里解释为: The strdup() function returns a pointer toa new string which is a duplicate of the string s. Memory for thenew string is obtained with malloc(3), and can be freed with

linux C函数之strdup函数分析

一.函数分析 1.函数原型: #include <string.h>char *strdup(const char *s); 2.功能: strdup()函数主要是拷贝字符串s的一个副本,由函数返回值返回,这个副本有自己的内存空间,和s没有关联.strdup函数复制一个字符串,使用完后,要使用delete函数删除在函数中动态申请的内存,strdup函数的参数不能为NULL,一旦为NULL,就会报段错误,因为该函数包括了strlen函数,而该函数参数不能是NULL. 3.strdup函数实现 c

内存及字符串操作篇strlen strchar strcmp strcoll strcpy strdup strstr strtok strspn strrchr bcmp bcopy bzero index memccpy memset

bcmp(比较内存内容) 相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件 #include<string.h> 定义函数 int bcmp ( const void *s1,const void * s2,int n); 函数说明 bcmp()用来比较s1和s2所指的内存区间前n个字节,若参数n为0,则返回0. 返回值 若参数s1 和s2 所指的内存内容都完全相同则返回0 值,否则返回非零值. 附加说明 建议使用memc

_strdup和strdup还有string.h和string事

在MSVC中,_strdup(const char *p)函数的作用是返回一个指针,这个指针指向p的一个复制串. #include<iostream> int main() { char str[]="this is a string"; char *dstring=strdup(str); std::cout<<dstring; std::cout<<(int)str<<" "<<(int)dstring

C语言strdup函数

1 static RD_INLINE RD_UNUSED char *rd_strdup(const char *s) { 2 #ifndef _MSC_VER 3 char *n = strdup(s); 4 #else 5 char *n = _strdup(s); 6 #endif 7 assert(n); 8 return n; 9 } 1 test_topics_sh = rd_strdup(val); strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成

strdup和strndup函数

首先说明一下:这两个函数不建议使用,原因是返回内存地址把释放权交给别的变量,容易忘记释放. 一.strdup函数 函数原型 头文件:#include <string.h> char *strdup(const char *s); 功能:将字符串拷贝到新建的位置处 返回值 :返回一个指针,指向为复制字符串分配的空间.如果分配空间失败,则返回NULL值. 实例 #include <stdio.h>#include <string.h>#include <alloc.h

C语言中的神兽strdup

C语言的确博大精深,在C语言的世界中遨游了那么多年,发现自己仍是菜鸟一枚,很多利器没有能够驾驭,今天介绍一个神兽,威力无比,但是却很少人能用得好. 函数原型: #include <string.h> char *strdup(const char *s); 函数介绍: strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现. strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内

(转)从内存管 理、内存泄漏、内存回收探讨C++内存管理

http://www.cr173.com/html/18898_all.html 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对 C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃 C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能