(9分)某进程的虚拟地址空间如图,阴影部分为未占用区域,有C程序:
char *ptr;
void main(){
int length;
ptr = (char *)malloc(sizeof(char));
scanf("%s", ptr);
length = strlen(ptr);
printf("length=%d\n",length);
free(ptr);
}
内核区 |
用户栈 |
运行时堆 |
可读写数据区 |
只读代码区 |
1)上述程序执行时,PCB位于哪个区域,执行scanf()等待键盘输入时,该进程处于什么状态?
2)main()函数的代码位于哪个区域?其直接调用的哪些函数的功能需要通过执行驱动程序实现?
3)变量ptr被分配在哪个区域?若变量length没有被分配在寄存器中,则会被分配在哪个区域?ptr指向的字符串位于哪个区域?
查看答案和解析【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。
启航教育热门私房课
MORE小班面授 名额有限 抢先体验
编辑推荐
最新内容
姓名
手机号