2016 - 2024

感恩一路有你

vc动态数组重新赋值怎么操作 c语言中不知道数组长度的情况下,怎么申请空间?

浏览量:3493 时间:2023-04-07 09:18:20 作者:采采

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

那个 这是个好问题。目前我能想到的就是用链表结构代替数组,或者更确切的说,用alloc函数来构建一个链表。

与数组不同的是,数组的元素在内存中是一个连续的区域,而链表的节点在内存中是一个离散的区域,所以链表的运行效率比数组差一点。

如果有朋友的其他,可以留言,一起讨论!

动态内存扩展。例如,将一个文件装入内存,写入长度和数据类型(字符、结构、二进制数等。)转换成alloc函数,并将第一个地址指针返回给*ptr,就可以使用了。对了,vc ten是用new扩展的,方法同上。

浪费不可避免。但是你可以封装一个间接调用malloc的函数,在里面判断,超过了再申请,没有的话从里面申请。实际上,这类似于操作系统的堆内存管理器。

在这种情况下,有两种解决方案。

1.如果你只是不 我不知道大小,但你知道上限。然后可以声明有上限的数组变量。优点是程序大小在编译时就确定了;运行时数组的内存空间是从堆栈中分配的;不需要手动释放内存;很快。缺点是会浪费空间。

2.否则只能通过动态申请内存空间(malloc)来解决问题。可以设计一个两倍于满的数组,然后复制原数组,将指针指向新数组,最后释放旧内存空间。好处是你不 不必担心阵列容量(主题提出的主要问题);唐 不要浪费空间。但缺点也很明显:操作复杂;内存从堆中分配,可能不够用;必须手动分配和释放内存;速度慢。

因为我只回答数组。所以解决方法还是比较多的:可以参考其他大神的方法,使用其他数据结构。我赢了。;这里就不重复了。

怎样将字符数组转换为整形数组?

//#includestdafx.h//vc 6.0加这行。# includesdio . hvoidmain(void){ charstr[]{ 11,12,13,14,15,16,17,18,19,20 };intdstr[10],I;for(i0;i10dstr[I]str[I]);printf(

);}其实不需要转换。char数组是一个单字节的整数数组,直接用就行了...

内存 问题 函数 空间 内存空间

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