我正在尝试编写一个简单的函数来获取名称并在向其添加扩展后返回它。 例如,如果我有指向“abcd”的字符指针,函数应该返回“abcd.as”
我尝试编写这个函数来获取 char 指针并在添加扩展后返回指向新 char 的指针。但是不工作有人知道为什么吗?
char* AddFileExtension(char* FileName)
{
char* FixFileName=NULL;
char* Extension = ".as";
strcpy(FixFileName, FileName);
strcat(FixFileName, Extension);
return FixFileName;
}
最佳答案
您必须为 FixFileName
分配内存:
char* Extension = ".as";
char* FixFileName = malloc(strlen(FileName) + strlen(Extension) + 1);
不要忘记 free()
用完内存。出于显而易见的原因,这必须在函数之外完成。
关于c - 在不知道长度的情况下,在 C 中使用 strcpy 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700129/