gpt4 book ai didi

c - 带有 strcpy 函数的运行时错误 "access violation writing location "

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:09 25 4
gpt4 key购买 nike

我有这个运行时错误“访问冲突写入位置”与 strcpy 函数

这是我的部分代码:

else if (strcmp(sentenceRecv, "405002") == 0){
/*winVersion[SIZE] = (char*)malloc(sizeof(tempString));*/
system("ver >> text.txt");
FILE *pfile = fopen("text.txt", "rt+");
if (pfile == NULL)
{
printf("Couldn't open file\n");
}
fread(tempString, sizeof(char), SIZE - 1, pfile);
fclose(pfile);
pfile = fopen("text.txt", "w");
if (pfile == NULL)
{
printf("Couldn't open file\n");
}
fputc((int)' ', pfile);
fclose(pfile);
/* winVersion[SIZE] = strdup(tempString);*/
strcpy(winVersion, tempString);
send(ClientSocket, winVersion, sizeof(winVersion), 0);
menuCheck = 1;
}

错误在这一行:strcpy(winVersion, tempString);在第一行我写道:

char winVersion[SIZE];
char tempString[SIZE];

最佳答案

char tempString[SIZE] = {0};

strcpy() 需要一个以 null 结尾的字符串('\0')

否则它将继续运行,直到它在连续内存中的某处遇到“\0”,这可能不属于您的程序,因此会出现访问冲突错误。

您可以使用 char *strncpy(char *dest, char *src, size_t n); 并将 SIZE 指定为要复制的 n 个字节数。这仍然有些不安全,因为复制的字符串也不会以 null 结尾,以后可能会导致更多问题。

http://beej.us/guide/bgc/output/html/multipage/strcpy.html

关于c - 带有 strcpy 函数的运行时错误 "access violation writing location ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com