柔数组的介绍

news2024/11/28 20:34:37

柔数组简单介绍

这个词你可能没有听过但是他的确是存在的。

1.在c99中结构中的最后⼀个元素允许是未知⼤⼩的数组,这就叫做『柔性数组』成员

2这就代表了它存在与结构体中,很重要的一点是,他只能是结构体的最后的一个成员,这是为了方便柔数组的大小发生变化,

柔数组的的大小是可以发生变化的,就代表他需要去自己开辟空间和调整空间,这就要用到我们的动态内存开辟空间的函数malloc,calloc, realloc(这个用来调整空间的)。
柔数组的数组长度是可以不给定的,

柔数组的特点:

  1. 柔数组的前面必须要有至少一个成员变量
  2. sizeof 返回的这种结构⼤⼩不包括柔性数组的内存
  3. 包含柔数组的结构体用malloc分配空间时,大小应该大于结构体本身的大小,这是为了适应柔数组的大小,

下面是sizeof去计算这个结构体的大小。
在这里插入图片描述

柔数组的使用

因为我们的柔数组要动态开辟空间,所以需要我们定义一个结构体指针来使用,那么戒应用就只能用(->)这个符号来访问里面的成员。
例如:

#include <stdio.h>
#include <stdlib.h>
struct st_type
{
 int i;
 int a[];//柔性数组成员
};
int main()
{
   struct st_type *s;
   //创建柔数组
   s=(struct st_type*)malloc(sizeof(struct st_type)+sizeofint*10)//数组里面存10个整数。
   //空间的大小可以按照自己的需求来定。
   int i;
   for(i=0;i<10;i++)
   {
     s->a[i]=i+1;
   }
   for(i=0;i<10;i++)
   {
    printf("%d",s->a[i]);
   }
   
   return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1556387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面向对象特征二:继承

继承的概述 生活中的继承 财产继承&#xff1a; 绿化&#xff1a;前人栽树&#xff0c;后人乘凉 “绿水青山&#xff0c;就是金山银山” 样貌&#xff1a; 继承之外&#xff0c;是不是还可以"进化"&#xff1a; 继承有延续&#xff08;下一代延续上一代的基因、财…

动态内存管理【malloc,calloc,realloc和free的理解】【柔性数组的概念】

一.为什么要有动态内存分配 我们知道&#xff0c;当我们创建变量的时候&#xff0c;我们会向系统申请一定大小的空间内存。比如int a10或者int arr[10]&#xff1b;我就向内存申请了4或者40个字节的大小来存放数据。但是当我们一旦申请好这个空间&#xff0c;大小就无法调整了…

Linux部署Kafka2.8.1

安装Jdk 首先确保你的机器上安装了Jdk&#xff0c;Kafka需要Java运行环境&#xff0c;低版本的Kafka还需要Zookeeper&#xff0c;我此次要安装的Kafka版本为2.8.1&#xff0c;已经内置了一个Zookeeper环境&#xff0c;所以我们可以不部署Zookeeper直接使用。 1、解压Jdk包 t…

缓存和缓存的常用使用场景

想象一下,一家公司在芬兰 Google Cloud 数据中心的服务器上托管一个网站。对于欧洲用户来说,加载可能需要大约 100 毫秒,但对于墨西哥用户来说,加载需要 3-5 秒。幸运的是,有一些策略可以最大限度地减少远程用户的请求延迟。 这些策略称为缓存和内容交付网络 (CDN),它们是…

HarmonyOS实战开发-使用List组件实现导航与内容联动的效果。

1 卡片介绍 使用ArkTS语言&#xff0c;实现一个导航与内容二级联动的效果。 2 标题 二级联动&#xff08;ArkTS&#xff09; 3 介绍 本篇Codelab是主要介绍了如何基于List组件实现一个导航和内容的二级联动效果。样例主要包含以下功能&#xff1a; 切换左侧导航&#xff…

OSCP靶场--Sorcerer

OSCP靶场–Sorcerer 考点(feroxbuster目录扫描zip包隐藏文件发现公钥私钥公钥覆盖私钥登陆suid start-stop-daemon提权) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.216.100 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.or…

nodejs下载安装以及npm、yarn安装及配置教程

1、nodejs下载安装 ​ 1.1、使用nodejs版本管理工具下载安装&#xff0c;可一键安装、切换不同nodejs版本&#xff0c; nvm-setup.zip&#xff1a;安装版&#xff0c;推荐使用 本次演示的是安装版。 1、双击安装文件 nvm-setup.exe 选择nvm安装路径 例如&#xff1a;E:\Soft…

STL中容器、算法、迭代器

STL标准模板库封装了常用的数据结构和算法&#xff0c;让程序员无需太关心真实的数据结构实现。 容器 容器&#xff1a;用来存放数据的。 STL容器就是将运用最广泛的的一些数据结构实现出来。 常用的数据结构有&#xff1a;数组、链表、树、栈、队列、集合、映射表。 这些…

印度神体系与编程思维

印度神体系中存在三大主神&#xff1a;至高神梵天、毗湿奴以及湿婆。 1.神的类型抽象与神性优先级&#xff1a; 每一个神都掌握着世间中所存在的规律&#xff0c;比如天界里因陀罗&#xff08;帝释天&#xff09;等神掌控风火水电。换句话说&#xff0c;每一个可以抽象出来的世…

怎么把照片容量变小?图片压缩技巧分享

照片文件通常占据大量存储空间&#xff0c;特别是在拍摄高分辨率照片或大量照片的情况下&#xff0c;通过减小照片文件大小&#xff0c;可以节省设备内部存储或外部存储介质上的空间&#xff0c;使您能够容纳更多的照片。 打开压缩网站&#xff0c;点击选择图片压缩&#xff0…

JUC高并发编程详解

大家好&#xff0c;欢迎来到这篇关于JUC&#xff08;Java Util Concurrent&#xff09;高并发编程的博客&#xff01;在这个数字时代&#xff0c;我们的软件需求越来越庞大&#xff0c;而对于高并发编程的需求也日益迫切。在Java的世界里&#xff0c;JUC就像一位强大的武士&…

Mamba: Linear-Time Sequence Modeling with Selective State Spaces(论文笔记)

What can I say? 2024年我还能说什么&#xff1f; Mamba out! 曼巴出来了&#xff01; 原文链接&#xff1a; [2312.00752] Mamba: Linear-Time Sequence Modeling with Selective State Spaces (arxiv.org) 原文笔记&#xff1a; What&#xff1a; Mamba: Linear-Time …

线程池-2:runWorker分析-1

为何runWorker中在task被当前worker中的当前线程获取到准备执行task时需要进行worker.lock()? 如下图&#xff1a; 1、某个worker中的run逻辑只会被worker中包装的线程进行执行&#xff1b; 2、按理说&#xff1a;不会存在多个线程并发执行同一个worker中的runWorker()逻辑&a…

蓝桥杯真题Day41 倒计时13天 纯练题,该开始复习知识点了!

蓝桥杯第十二届省赛真题-分果果 题目描述 小蓝要在自己的生日宴会上将 n 包糖果分给 m 个小朋友。每包糖果都要分出去&#xff0c;每个小朋友至少要分一包&#xff0c;也可以分多包。 小蓝将糖果从 1 到 n 编号&#xff0c;第 i 包糖果重 wi。小朋友从 1 到 m 编号。每个小朋…

Codeforces Round 838 (Div. 2) D. GCD Queries

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

SpringCloud下的微服务应用技术(结尾篇)

六. Feign远程调用 6.1 替代RestTemplate RestTemplate调用问题&#xff1a;代码可读性差&#xff0c;参数复杂且URL难维护。 Feign是一个声明式的HTTP客户端&#xff0c;官方地址&#xff1a;GitHub - OpenFeign/feign: Feign makes writing java http clients easier 它可…

安装DPDK环境

安装DPDK环境 下载解压源码 wget https://fast.dpdk.org/rel/dpdk-19.08.2.tar.xz tar -xcf ./dpdk-19.08.2.tar.xz安装源码 1.处理库文件 编译库文件 ./dpdk-setup.sh 根据操作系统选择对应gcc库文件2.设置环境变量 配置多网卡队列和巨页 ethernet1.virtualDev "vm…

车载以太网AVB交换机 TSN交换机 时间敏感网络 11口 千兆 SW2000TSN

目录 一、TSN时间敏感交换机概述 二、产品介绍 SW2000M/H TSN 1、产品框架 2、产品特点与参数 产品特点 产品参数 3、配置与使用 4、常用连接方式 4.1 双通道作为监控和数据采集器&#xff0c;采集两个设备间的通信数据&#xff08;Bypass功能&#xff09; 4.2 试验搭…

如何用Python脚本自动发送邮件?

目录 1. 基础知识 1.1. SSH&#xff08;Secure Shell&#xff09;协议 1.2. SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;协议 1.3. SSH协议与SMTP协议之间的关系 2. QQ邮箱设置 2.1. 开启SMTP服务 2.2. 编写脚本 3. 测试成功 1. 基础知识 邮件的发送过…

XXE漏洞知识及ctfshow例题

XXE漏洞相关知识 XXE全称为XML Enternal Entity Injection 中文叫xml外部实体注入 什么是xml 简单了解XML&#xff1a; &#xff08;xml和html的区别可以简易的理解成&#xff1a;xml是用来储存数据和传输数据的而html是用来将数据展现出来&#xff09; XML 指可扩展标记语…