int verify(char filename[], int filenameLength) // If f.ex. filename is "x.txt" then filenameLength is 5
{
char* filenameCorrect = malloc(sizeof(char) * (filenameLength + 9));
filenameCorrect = "correct_";
strcat(filenameCorrect, filename);
...
}
每次我运行此操作时都会遇到此异常:“访问违规写入位置”。
答案 0 :(得分:3)
filenameCorrect
是一个指针,而不是一个保存字符的变量,而不是指向内存中分配用于保存字符的某个区域的指针。在第二行中,您将重新分配filenameCorrect
以指向作为代码一部分编译的字符串,因此无法更改错误。
您要查找的是将字符串"correct_"
复制到内存中已分配的区域。所以使用:
strcpy(filenameCorrect, "correct_");
然后您可以安全地使用strcat
。