64,637
社区成员
发帖
与我相关
我的任务
分享
void f1(char *s)
{
if (s)
{
printf("s=%s\n",s);
delete[] s;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
printf("start .... \n\n");
char *s1 = new char[10];
memset(s1, '\0', 10);
memmove(s1, "123456789", 9);
printf("start f1(s1)\n");
f1(s1);
printf("end f1(s1)\n\n");
char *s2 = "ABCDEFG";
printf("start f1(s2)\n");
f1(s2);
printf("enf f1(s2)\n");
}
void __CRTDECL operator delete(void* const block) noexcept
{
#ifdef _DEBUG
_free_dbg(block, _UNKNOWN_BLOCK);
#else
free(block);
#endif
}
void f1(char *s)
{
if (s)
{
printf("s=%s\n", s);
}
}
int main(int argc, char* argv[])
{
printf("start .... \n\n");
char *s1 = new char[10];
memset(s1, '\0', 10);
memmove(s1, "123456789", 9);
printf("start f1(s1)\n");
f1(s1);
printf("end f1(s1)\n\n");
delete [] s1; //不再需要的时候销毁掉
s1 = NULL; // 赋值为NULL,防止后续使用到垂悬指针
char *s2 = "ABCDEFG";
printf("start f1(s2)\n");
f1(s2);
printf("enf f1(s2)\n");
}