有谁能告诉我为什么我用Visual C ++会出现这个错误?断点是这些线。
BREAK POINTS PathToTR
PathToTR
是:
static char pathToTR[] = "J:\\games\\Tabula Rasa\\Tabula Rasa 1.16.5.0";
代码粘贴在ERROR(s)
之下 {
case 2:
pathToTR = (char*)malloc(strlen("."));
strcpy(pathToTR, ".");
nameOfMap = (char*)malloc(strlen(argv[1]));
strcpy(nameOfMap, argv[1]);
break;
case 3:
pathToTR = (char*)malloc(strlen(argv[1]));
strcpy(pathToTR, argv[1]);
nameOfMap = (char*)malloc(strlen(argv[2]));
strcpy(nameOfMap, argv[2]);
break;
case 4:
pathToTR = (char*)malloc(strlen(argv[1]));
strcpy(pathToTR, argv[1]);
nameOfMap = (char*)malloc(strlen(argv[2]));
strcpy(nameOfMap, argv[2]);
generateNewNavMesh = strcmp(argv[3], "false");
break;
default:
printf("usage:\r\n\t%s <map name>\r\n\t%s <client folder> <map name>\r\n", argv[0], argv[0]);
return 0;
}
答案 0 :(得分:0)
您没有显示pathToTR
的定义,但我怀疑您将其定义为字符数组。你必须将它定义为指针。
pathToTR = (char*)malloc(strlen("."));
没有任何意义。
在此数组中保留更多可以附加更多数据的字符,或者每次动态分配足够大的数组并使用新的附加数据复制pathToTR。