1、arp协议的主要作用是什么?
ARP协议是地址解析协议。在局域网中,网络中实际传输的是“帧”,帧里面是ARP协议主要负责将局域网中的32位IP地址转换为对应的48位物理地址,即网卡的
2、下面程序会出现什么问题?
void getmemory(char *p)
{
p=(char *) malloc(100);
strcpy(p,"hello world");
}
int main( )
{
char *str = NULL;
getmemory(str);
printf("%s/n",str);
free(str);
return 0;
}
程序崩溃,getmemory 中的 malloc 不能返回动态内存,free ()对str操作很危险。
3、会出现什么问题?打印结果是是多少?
void main()
{
char aa[10];
printf("%d",strlen(aa));
}
sizeof() 和初不初始化,没有关系,strlen() 和初始化有关,打印结果值未知。
5、程序哪里有错误
wap( int* p1,int* p2 )
{
int * p; //(int)malloc(4); is ok
*p = *p1;
*p1 = *p2;
*p2 = *p;
}
p 为野指针(指向一个已删除的对象或未申请访问受限内存区域的指针)
5、要对绝对地址0x100000赋值,我们可以用 (unsigned int *)0x100000 = 1234;那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?
*((void (*)( ))0x100000 ) ( );
首先要将0x100000强制转换成函数指针,即:(void (*)())0x100000
然后再调用它:*((void (*)())0x100000)();