关于memset
#include "stdafx.h "
#include <memory.h>
#include <stdio.h>
int *p;
int _tmain(int argc, _TCHAR* argv[])
{
memset(p,0,sizeof(int)); 此行出错
return 0;
}
编译能通过,但运行时报告“该程序遇到问题需要关闭,我们对此引起的不便表示抱歉。”
问题在哪里?
[解决办法]
#include "stdafx.h "
#include <memory.h>
#include <stdio.h>
int p;
int _tmain(int argc, _TCHAR* argv[])
{
memset(&p,0,sizeof(int)); 此行出错
return 0;
}
原来当然会错p没有分配内容是野指针~
[解决办法]
你的p是一个全局变量,它指向哪里?全局变量如果不显式的初始化,是被初始化为0的,那么它就什么也不指。那memset去初始化哪个位置的内存呢?