计算机操作系统 (1)使用sizeof运算符

**

任务描述

本关任务:分别给出指针和数组在内存中所占空间的大小(以字节为单位)。(educoder平台)

相关知识

为了完成本关任务,你需要掌握:
1.指针变量的大小指的是一个指针在内存所占空间的大小,与指针类型无关,与机器的直接寻址大小有关,即32位的机器,指针占4个字节,64位的机器,指针占8个字节。
2.数组的大小指的是其所有元素在内存所占空间的大小,与数组类型和数组大小有关。如100个元素的字符数组,其所占内存大小是100字节,而100个元素的整型数组,其所占内存大小是400字节。

了解数据类型在内存中占据的空间大小
sizeof对指针变量的计算得到的是指针所占据的内存空间大小,32位系统分配的是4个字节,64位系统分配的是8字节,指针变量可以多次赋不同的值。
sizeof对数组变量的计算是系统给全部元素分配的内存空间,在编译后即固定,因此数组变量不可重赋值。

编程要求

根据提示,在右侧编辑器补充代码,输出指针和数组所占内存空间的大小。本项目作为掌握EduCoder在线项目评测和上机环境的使用,因此程序代码非常简单短小。

测试说明

平台会对你编写的代码进行测试:

测试输入:无输入数据
预期输出:
指向100个字符的字符指针sizeof(p_char) = 8 , 100个字符数组sizeof(array_char) = 100
指向100个整数的整型指针sizeof(p_int) = 8 , 100个整型数组sizeof(array_int) = 400

//stu001.c 程序模板,缺失代码由学生完成,本任务为educoder入门项目。 
#include <stdio.h>
#include <stdlib.h>
int main()
{
  char *p_char =malloc(100);
  char array_char[100];
  int *p_int =malloc(100);
  int array_int[100];
  //请在begin和end语句行之间补全程序语句:

  /*  begin ************************************************************** */
  //输出p_char 和 array_char在内存中所占空间的大小

  //输出p_int 和 array_int在内存中所占空间的大小
    printf("指向100个字符的字符指针sizeof(p_char) = %d , 100个字符数组sizeof(array_char) = %d\n",sizeof(p_char),sizeof(array_char));
   
   printf("指向100个整数的整型指针sizeof(p_int) = %d , 100个整型数组sizeof(array_int) = %d\n",sizeof(p_int),sizeof(array_int));
  /*   end  ************************************************************** */
  free(p_char);
  free(p_int);
  return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值