在使用 Visual Studio 进行 C/C++ 开发时,调用一些不安全的函数(如 strcpy、strcat 等)会提示 _CRT_SECURE_NO_WARNINGS 警告。这些函数不安全,可能导致内存泄漏等问题,因此建议使用带 _s 后缀的函数(如 strcpy_s、strcat_s 等)来代替它们。
但有时候
#define _CRT_SECURE_NO_WARNINGS 1 明明添加了却还是不可以使用
intmain() { charstr1[] ="Hello"; charstr2[] ="World"; charcombined[20]; // 定义一个足够大的数组来存放合并后的字符串strcpy(combined, str1); // 将第一个字符串复制到合并后的数组中strcat(combined, " "); // 在合并后的数组中加上一个空格strcat(combined, str2); // 再将第二个字符串连接到合并后的数组中printf("%s\n", combined); // 输出合并后的字符串return0; }
解决办法 把#define _CRT_SECURE_NO_WARNINGS 1移到开头
intmain() { charstr1[] ="Hello"; charstr2[] ="World"; charcombined[20]; // 定义一个足够大的数组来存放合并后的字符串strcpy(combined, str1); // 将第一个字符串复制到合并后的数组中strcat(combined, " "); // 在合并后的数组中加上一个空格strcat(combined, str2); // 再将第二个字符串连接到合并后的数组中printf("%s\n", combined); // 输出合并后的字符串return0; }
问题已经解决