1.下面的代码有什么问题? char *_strdup( const char *strSource ) { static char str[MAX_STR_LEN]; strcpy(str, strSource); return str; }
时间: 2024-02-23 22:56:48 浏览: 146
编写名为strdup的函数
5星 · 资源好评率100%
这个函数 _strdup() 存在问题。它使用了一个静态 char 数组 "str" 来存储复制后的字符串,并返回指向这个数组的指针。但是,这个函数每次调用时都会修改这个静态数组,并且返回的指针指向的是同一个静态数组,因此会导致只有最后一次调用的结果被保留,先前的结果都会被覆盖掉。这样的话,如果在程序中多次使用该函数,可能会导致错误的结果。因此,应该使用动态内存分配来解决这个问题。
阅读全文