首页 > 其他分享 >C语言 不定长数组

C语言 不定长数组

时间:2023-12-19 21:22:49浏览次数:31  
标签:struct students C语言 int 数组 printf sizeof data 不定

#include <stdio.h>
#include <malloc.h>

struct student {
    int age;
};

struct data {
    int len;
    // 不占用空间
    struct student students[0];
};

int main() {
    struct data* d = malloc(sizeof(struct data) + 2 * sizeof(struct student));
    d->len = 2;
    d->students[0].age = 10;
    d->students[1].age = 11;

    // 结果是4
    printf("%d\n", sizeof(struct data));
    // 内存对齐,结果是8
    printf("%d\n", sizeof(d));
    // 结果是0
    printf("%d\n", sizeof(d->students));

    free(d);
    return 0;
}

标签:struct,students,C语言,int,数组,printf,sizeof,data,不定
From: https://www.cnblogs.com/WJQ2017/p/17914776.html

相关文章

  • [LeetCode Hot 100] LeetCode33. 搜索旋转排序数组
    题目描述思路如果nums[left]<=nums[mid],则[left,mid]有序如果nums[left]>nums[mid],则[mid,right]有序方法一:classSolution{publicintsearch(int[]nums,inttarget){if(nums==null||nums.length==0)return-1;intleft=0,ri......
  • [LeetCode Hot 100] LeetCode34.在排序数组中查找元素的第一个和最后一个位置
    题目描述思路:二分查找之寻找左右侧边界两个关键点:1.数组有序;2.时间复杂度O(logn)方法一:classSolution{publicint[]searchRange(int[]nums,inttarget){if(nums.length==0||nums==null){returnnewint[]{-1,-1};}......
  • 《初学C语言第32天》
    //////——————————————————10.指针笔试题//////笔试题1//#include<stdio.h>//intmain()//{//  inta[5]={1,2,3,4,5};//  int*ptr=(int*)(&a+1);//  printf("%d,%d",*(a+1),*(ptr-1));//*(a+1):指的是数组a中第二个元素2......
  • C语言实现TCP CS模型代码,客户端服务器
    服务端将接受客户端发送的数据并将其转换成大写形式,然后再发送给客户端,客户端将发送一个字符串给服务器,并显示来自服务器的响应内容。服务器点击查看代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#......
  • 数组的方法整理
    vararray=[13,5,20,15,48,68]console.log("原数组"+array)//第一个组合字符串//varnews=array.join("//0")//第二个删除最后一个元素,返回最后一个值//varnews=array.pop();shift()删除第一个//第三个......
  • js slice截取数组 + splice删除/添加数组数据
    varheroes=["李白",'蔡文姬','韩信','赵云','甄姬','阿珂','貂蝉','妲己'];//slice截取不改变原数组返回新的数组/*slice(开始索引,结束索引)从0开始左开右闭*/console.log(heroes.slice(1,4))//['蔡文姬',......
  • java基础语法之二维数组2
    一:概述在相关二维数组的上一边博文中,介绍了二维数组的定义,及其定义格式和初始化的相关知识点。在这篇文章中将说明二维数组的遍历其内存图。二:具体说明<1>二维数组的遍历在实现的过程中,我们在二维数组中使用了循环嵌套:①循环嵌套:循环语句中嵌套循环语句②通过外层循环可以得到......
  • 【C语言】结束符’\0‘ & gets()字符串输入函数
    ......
  • 【C语言】结束符"\0" & gets()字符串输入函数
    ......
  • java基础语法之二维数组1
    一:概述在前面的博文中,已经说明了一维数组相关的基础知识和案例,接下来就是对二维数组的介绍。首先介绍二维数组的相关基础介绍。二:具体说明二维数组:元素为一维数组的数组。<1>二维数组的定义格式数据类型[][]变量名; int[][]arr; 数据类型变量名[][]; intarr[][];数据类型[]......