2016 - 2024

感恩一路有你

c输入不定长度的数组 如何在C中动态定义数组的长度?

浏览量:1244 时间:2021-03-12 20:10:00 作者:admin

如何在C中动态定义数组的长度?

对于动态分配的阵列,您可以自定义阵列的长度。示例如下:

##include<stdio。H>

##包含字符串(&L)。H>

##包含<stdlib。H>

int main()

{

printf(“输入要分配的内存大小:”)

int size

scanf(%d”,& size)//输入自定义数组的长度

int*PSTART=(int*)malloc(sizeof(int)*size)

if(PSTART==0){

printf(“无法分配内存n”)

返回0]}

memset(PSTART,0x00,sizeof(int)*size)

int INX

表示(INX=0 INX!=size INX)PSTART[INX]=INX

对于(INX=0 INX!=size INX)printf(%dt,PSTART[INX])

printf( “)

返回0]}

C语言定义未知长度的数组?

c语言中数组的大小可以改变吗?

MSDN中的数组声明如下所述:保持数组最大大小所需的整数类型是size 的大小。在头文件STDDEF.H中定义,size 是一个无符号整数,范围为0x00000000到0x7cffffff。也就是说,只要硬件条件允许,数组的大小可以是0x7cffff(2G字节)。数组占用的空间为:count*sizeof(type)。Count是数组元素的数目,sizeof(type)是元素占用的字节数。如果定义的数组空间超过2G,VC编译器将报告一个错误:致命错误c1126:“2G”:自动分配超过。。。因此,当实际编程确实需要使用更大的数组时,应该使用动态定义方法(newmalloc等)。

c语言中不知道数组长度的情况下,怎么申请空间?

这是个好问题。目前,我能想到的是使用链表结构而不是数组,或者更准确地说,使用alloc函数来构建链表。

与数组不同的是,数组的元素在内存中是一个连续的区域,而链表的节点在内存中是一个离散的区域,因此链表的运算效率比数组要低一些。

如果您有其他方法,可以留言一起讨论!

c输入不定长度的数组 c语言定义未知长度数组 c数组的长度怎么获取

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。