当前位置: 首页 > news >正文

C语言sizeof()计算空间大小为8的问题

在练习数据结构过程中,定义指针p,并且申请了10个char类型空间,但在计算p所指空间大小时候,发现了一些奇怪的现象。

#include <stdio.h>
#include <stdlib.h>int main(){char s[12];printf("the size of memory occupied = %d\n",sizeof(s));//12char *s1 = "hello,world.";printf("the size of memory occupied = %d\n",sizeof(s1));//8char *s2 = (char *)malloc(sizeof(char) * 12);printf("the size of memory occupied = %d\n",sizeof(s2));//8int a[3] = {1,2,3};printf("the size of memory occupied = %d\n",sizeof(a));//12int *a1 = (int *)malloc(sizeof(int)*3);printf("the size of memory occupied = %d\n",sizeof(a1));//8return 0;
}

 

可以发现,sizeof()只有在计算定义为数组的大小是准确的,在计算指针指向的数组或者申请空间的大小时候,不准确。

通过查阅资料得知,sizeof()不可以用来计算申请出来空间的大小。

那么,为什么是8?是因为8是指针所占空间的大小。

那我想要计算申请的空间的大小,怎么办?

=========>  _msize()  <=============

_msize()函数可以计算出申请空间的大小,如下:

#include <stdio.h>
#include <stdlib.h>int main(){char *s2 = (char *)malloc(sizeof(char) * 12);printf("sizeof(s2) = %d\n",sizeof(s2));//8printf("_msize(s2) = %d\n",_msize(s2));//12int *a1 = (int *)malloc(sizeof(int)*3);printf("sizeof(a1) = %d\n",sizeof(a1));//8printf("_msize(a1) = %d\n",_msize(a1));//12return 0;
}

!!!!!!!!!!!!如下两位博主讲的更为详细!!!!!!!!!!!!!!!!!!

参考资料:

C语言——判断矩阵维数(sizeof、_msize)

C++学习笔记之如何获取指针开辟空间或数组空间的大小以及_countof、sizeof、strlen、_Msize的区别

相关文章:

C语言sizeof()计算空间大小为8的问题

在练习数据结构过程中&#xff0c;定义指针p&#xff0c;并且申请了10个char类型空间&#xff0c;但在计算p所指空间大小时候&#xff0c;发现了一些奇怪的现象。 #include <stdio.h> #include <stdlib.h>int main(){char s[12];printf("the size of memory …...

时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化

时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 LMD局部均值分解 直接替换Excel即可运行包含频谱图相关系数图 Matlab语言 1.算法新颖…...

景区AR虚拟三维场景沉浸式体验成为新兴的营销手段

科技的迅速崛起正在改变我们的世界&#xff0c;旅游业也在这股浪潮中掀起了一场全新的变革。增强现实(AR)技术正成为旅行中的一股强大力量&#xff0c;通过增添趣味和交互性&#xff0c;为旅程注入了前所未有的活力。本文将带您深入了解AR如何为旅游带来全新的体验&#xff0c;…...

【深度学习】 Python 和 NumPy 系列教程(五):Python容器:3、集合Set详解(初始化、访问元素、常用操作、常用函数)

目录 一、前言 二、实验环境 三、Python容器&#xff08;Containers&#xff09; 0、容器介绍 1、列表&#xff08;List&#xff09; 2、元组&#xff08;Tuple&#xff09; 3、集合&#xff08;Set&#xff09; 1. 初始化 2. 访问集合元素 3. 常用操作 a. 添加单个…...

单片机C语言实例:6、定时器的应用

一、定时器0控制LED闪烁 实例程序1&#xff1a; #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文件包含特殊功能寄存器的定义sbit LED P1^2; //定义LED端口/*------------------------------------------------定时器初始化子程序 …...

ChatGPT Prompting开发实战(五)

一、如何编写有效的prompt 对于大语言模型来说&#xff0c;编写出有效的prompt能够帮助模型更好地理解用户的意图(intents)&#xff0c;生成针对用户提问来说是有效的答案&#xff0c;避免用户与模型之间来来回回对话多次但是用户不能从LLM那里得到有意义的反馈。本文通过具体…...

MySQL——DQL union合并、limit限制与DDL建表和删表

一、Union 合并 union:是实现两个查询结果的合并。 例如&#xff1a;当我们查询员工名字为manager 和 salesman的员工名字和 工作&#xff1f; select e.ename,e.job from emp e where e.jobmanager or e.job salesman; select e.ename,e.job from emp e where e.job in(man…...

Java“牵手”唯品会商品列表数据,关键词搜索唯品会商品数据接口,唯品会API申请指南

唯品会商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取唯品会商品列表和商品详情页面数据&#xff0c;您可以通过开放平台的接口或者直接访问唯品会商城的网页来获取商品详情信息。以下是两种常用方法的介…...

Springboot整合JWT完成验证登录

目录 一、引入依赖二、JwtUtil 代码解读三、LoginController 代码解读四、整体代码五、结果展示 一、引入依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></depende…...

centos7 下使用docker安装常见的软件:Redis

关于docker的基础知识&#xff0c;请见《别在说自己不知道docker了&#xff0c;全文通俗易懂的给你说明白docker的基础与底层原理》 在自己学习的过程中经常会需要动手安装一下常见的工具&#xff0c;本篇就手把手带你用docker安装一遍。 jdk安装 如果先要更换之前的jdk从第…...

sql:SQL优化知识点记录(十五)

&#xff08;1&#xff09;MySQL主从复制 我们这里配置一Windows上的MySql做主机&#xff0c;Linux上的MySql做从机&#xff0c;搭建一主一从 测试以下是否能够拼通&#xff1a;从Linux上&#xff1a;167&#xff0c;连接Windows的165 从Windows的165 连接Linux上&#xff1a;…...

vue3+ts 分享海报

安装依赖1. npm install html2canvas --save<div class"flex-box"><div><div v-for"(item,index ) in from.list" :key"index" click"actvieFuntion(index)"><div>{{item}}</div><div :class"…...

Ubuntu23.10将推出全磁盘加密功能,提高系统安全性

Canonical 宣布其即将推出的 Ubuntu 23.10&#xff08;Mantic Minotaur&#xff09;将引入基于 TPM 的全磁盘加密的初步支持。这个特性将利用系统可信平台模块&#xff08;TPM&#xff09;&#xff0c;在系统级别上进行全磁盘加密&#xff0c;从而提高系统的安全性。 但需要注…...

防火墙的设置主要是为了防范什么

防火墙的设置主要是为了防范网络攻击和数据泄露。随着互联网的普及和信息化的加速&#xff0c;网络安全问题越来越受到人们的关注。其中&#xff0c;防火墙是一种常见的网络安全设备&#xff0c;其设置的重要性也日益凸显。 防火墙的设置主要是为了防范什么 防火墙的设置主要目…...

Vim9和其他软件的文本复制、粘贴

大家都知道&#xff1a;在Vim9中使用y和p命令来进行文本的复制和粘贴&#xff0c;今天我来说一说Vim和其他软件之间的文本复制、粘贴操作。 Vim9和其他软件进行复制、粘贴&#xff0c;其原理就是通过系统剪贴板作为中介来执行操作。 一、从Vim9复制文本内容 按住鼠标左键滑出…...

MySQL学习5:事务、存储引擎

事务 简介 事务是一组数据库操作的执行单元&#xff0c;它要么完全执行&#xff0c;要么完全不执行。事务是确保数据库中的数据一致性和完整性的重要机制之一。 事务具有以下四个特性&#xff08;称为ACID特性&#xff09;&#xff1a; 原子性&#xff08;Atomicity&#xf…...

redis如何保证接口的幂等性

背景 如何防止接口中同样的数据提交&#xff0c;以及如何保证消息不被重复消费&#xff0c;这些都是shigen在学习的过程中遇到的问题。今天&#xff0c;趁着在学习redis的间隙&#xff0c;我写了一篇文章进行简单的实现。 注意&#xff1a;仅使用于单机的场景&#xff0c;对于…...

避坑之路 —— 前后端 json 的注意问题

当我们在进行开发项目的时候&#xff0c;在前后端需要进行数据之间的传输&#xff0c;那么就会需要到json。而json算是字符串中的一种 1.先说一下前端的, 其实这两种都是表示前端希望能收到后端json这样的数据格式&#xff0c;那么我们在后端就需要注意将数据进行转换为json进…...

[构建 Vue 组件库] 小尾巴 UI 组件库 —— 横向商品卡片(仿淘宝)

文章归档于&#xff1a;https://www.yuque.com/u27599042/row3c6 组件库地址 npm&#xff1a;https://www.npmjs.com/package/xwb-ui?activeTabreadmegitee&#xff1a;https://gitee.com/tongchaowei/xwb-ui 下载 npm i xwb-ui配置 按需导入 import {组件名 } from xwb-…...

【Python】Python实现五子棋游戏(带可视化界面)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…...

域环境基础知识

Active Directory&#xff08;AD&#xff09; 域控制器功能&#xff1a; 集中管理所有域用户统一身份认证组策略分发资源访问控制 Windows Server域环境搭建 推荐版本&#xff1a; Windows Server 2003Windows Server 2008Windows Server 2012 域环境组成&#xff1a; 域控制器…...

QT----集成onnxRuntime实现图像分类应用实战

1. 环境准备与工具链搭建 在开始构建QTonnxRuntime图像分类应用之前&#xff0c;我们需要先准备好开发环境。这里我推荐使用Windows系统作为开发平台&#xff0c;因为大多数QT开发者都习惯在这个环境下工作。首先需要安装Visual Studio 2019或更高版本&#xff0c;这是编译QT应…...

终极方案:如何在Windows资源管理器中完美显示HEIC缩略图

终极方案&#xff1a;如何在Windows资源管理器中完美显示HEIC缩略图 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 你是否经常遇到这…...

先瑞达2025年年报:营收同比增长20.7% 双引擎格局成型迎高质量增长

3月26日晚间&#xff0c;先瑞达医疗&#xff08;6669.HK&#xff09;正式发布截至2025年12月31日的年度业绩报告。报告期内&#xff0c;公司紧扣血管介入治疗领域核心赛道&#xff0c;以技术创新为内核、以全球化布局为抓手、以降本增效为支撑&#xff0c;实现经营业绩的稳健增…...

突破Windows多显示器显示壁垒:SetDPI重新定义显示体验

突破Windows多显示器显示壁垒&#xff1a;SetDPI重新定义显示体验 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 在当今多设备协同工作的时代&#xff0c;显示器已成为我们与数字世界交互的重要窗口。然而&#xff0c;当程序员小李将笔…...

FreeRTOS+LwIP 2.2.0实战:手把手教你理解tcpip_thread的消息处理机制

FreeRTOSLwIP 2.2.0实战&#xff1a;深入解析tcpip_thread的消息驱动架构 在嵌入式网络开发中&#xff0c;理解协议栈的线程模型是构建稳定系统的关键。当FreeRTOS遇上LwIP&#xff0c;tcpip_thread就像一位不知疲倦的邮差&#xff0c;日夜处理着来自各方的网络报文。本文将带您…...

避坑指南:华为Atlas200DK开发板联网常见错误及解决方法

华为Atlas200DK开发板联网避坑实战手册 当开发者第一次拿到华为Atlas200DK开发板时&#xff0c;联网往往是遇到的第一个技术门槛。这个看似简单的操作&#xff0c;在实际操作中却可能因为各种配置细节问题而耗费数小时。本文将深入剖析开发板联网过程中的典型故障场景&#xff…...

Android开发避坑指南:registerForActivityResult找不到?可能是依赖版本惹的祸

Android开发实战&#xff1a;全面解析registerForActivityResult的正确使用与版本适配 在Android应用开发中&#xff0c;Activity之间的数据传递一直是核心功能之一。随着Jetpack组件的不断演进&#xff0c;Google推出了registerForActivityResult这一现代化API来替代传统的sta…...

LangGraph 工作流实战:Few-Shot提示赋能大模型精准调用自定义计算工具

1. 为什么需要Few-Shot提示赋能工具调用&#xff1f; 大模型在通用任务上表现惊艳&#xff0c;但遇到需要精确调用自定义工具的场景时&#xff0c;常常会出现"知道但不会用"的情况。比如让GPT-4计算"3172531284724"&#xff0c;它可能直接输出错误答案而非…...

5大突破!漫画阅读工具Venera重构跨平台阅读体验

5大突破&#xff01;漫画阅读工具Venera重构跨平台阅读体验 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera 副标题&#xff1a;如何在Windows、macOS和移动设备间无缝切换你的漫画库&#xff1f; 开篇痛点引入 不同设备间漫…...