推广 热搜: 广场  Java  app  Word  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

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

   2023-04-27 企业服务招财猫40
核心提示:c语言中不知道数组长度的情况下,怎么申请空间?那个这是个好问题。目前我能想到的就是用链表结构代替数组,或者更确切的说,用alloc函数来构建一个链表。与数组不同的是,数组的元素在内存中是一个连续的区域

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

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

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

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

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

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

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

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

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

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

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

//#includestdafx.h//vc6.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数组是一个单字节的整数数组,直接用就行了...

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8