c语言结构体数组内存大小,如何为C语言的结构体数组分配/释放内存?
如何为C语言的结构体数组分配/释放内存?
struct emp
{
char name[10];
float salary;
};
int main(int argc,char* argv[])
{
struct emp array_emp[1000000];
解决方案:2分
http://blog.csdn.net/q345852047/article/details/7348038
解决方案:30分
#include
#include
#include
#include
struct emp {
char name[10];
float salary;
};
int main() {
struct emp *array_emp;
array_emp=malloc(1000000*sizeof(struct emp));
if (NULL==array_emp) {
printf("Can not malloc 1000000 emp!\n");
return 1;
}
strcpy(array_emp[999999].name,"123456789");
array_emp[999999].salary=50000.0f;
free(array_emp);
return 0;
}
解决方案:1分
第12行array_emp=malloc(1000000*sizeof(struct emp));
应改为
array_emp=(struct emp *)malloc(1000000*sizeof(struct emp));
解决方案:1分
也许PRO*C和标准C不同。每弄过PRO*C,爱莫能助。
#include
#include
#include
#include
struct emp {
char name[10];
float salary;
};
int main() {
struct emp *array_emp;
int i;
array_emp=(struct emp *)malloc(1000000*sizeof(struct emp));
if (NULL==array_emp) {
printf("Can not malloc 1000000 emp!\n");
return 1;
}
for (i=0;i<1000000;i+=10000) {
sprintf(array_emp[i].name,"%d",i);
array_emp[i].salary=(float)i;
}
for (i=0;i<1000000;i+=10000) {
printf("%d %s %f\n",i,array_emp[i].name,array_emp[i].salary);
}
free(array_emp);
return 0;
}
//0 0 0.000000
//10000 10000 10000.000000
//20000 20000 20000.000000
//30000 30000 30000.000000
//40000 40000 40000.000000
//50000 50000 50000.000000
...
//
解决方案:1分
每弄过→没弄过
解决方案:1分
struct Point{
int x;
int y;
}
Point* pt;
pt = (Point*)malloc(10 * sizeof(Point));
//do sth
free(pt);
然后就可以用下标来操作了
pt[0].x = 12;
解决方案:1分
来看看11楼的回答
解决方案:1分
是因为只有1条数据的缘故吧
解决方案:1分
高手我这样定义似乎可以了,这样定义,我没法根据表的记录数来分配内存了,必须写死记录数了?
struct emp
{
char name[1000000][10];
float salary[1000000];
};
但是和如下定义有什么区别马?
struct emp_record
{
char name[10];
float salary;
};
个人感觉本质上来说没区别,但是一般不选择上面的,不方便。
解决方案:1分
看到5w的salary,其它的就不想看了,人生的差距最大不过如此……
c语言结构体数组内存大小,如何为C语言的结构体数组分配/释放内存?相关推荐
- 频繁分配释放内存导致的性能问题的分析--brk和mmap的实现
现象 1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C pr ...
- 【百度分享】频繁分配释放内存导致的性能问题的分析
现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C prog ...
- (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作
http://blog.csdn.net/fisherwan/article/details/19760681 上午写了下单向循环链表的程序,今天下午我把双向链表的程序写完了.其实双向链表和单向链表也 ...
- c语言算定积分d的大小,你知道C语言怎么实现求定积分吗
#include #include #define ACC 1000 float solve(float (*p)(float),float up,float down,int acc); float ...
- c 语言链表 删除第一个节点,最简单的链表删除第一个节点时释放内存的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1 #include 2 #include "list.h" 3 4 int IsEmpty(List L) 5 { 6 r ...
- java动态分配空间吗,当执行new为一个对象分配内存时,Java()A、自动初始化所分配的内存空间B、只分配内存,初始化要...
南极洲周围海洋上体型最大的哺乳动物是[ ]A.企鹅B.鲸鱼C.海豹D.海象 明明来自海南岛,他的话可信的是()A.我们那里一年四季都很热B.我们那里冬天经常下雪C.我们家的平顶房可以晒 人体生命活动的 ...
- vector 释放内存 swap
http://blog.csdn.net/jerryjbiao/article/details/7389233 相信大家看到swap这个词都一定不会感到陌生,甚至会有这样想法:这不就是简单的元素交换嘛 ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组内存大小计算 | 指针跳转步长问题 )
文章目录 一.二维数组内存大小计算 二.二维数组内存大小意义 一.二维数组内存大小计算 给定一个二维数组 : 该 二维数组 中有 444 个 一维数组 , 每个一维数组有 101010 个 char ...
- 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 | 每个 一级指针 指向不同大小内存 | 精准分配每个 一级指针 指向的内存大小 )
文章目录 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 二.完整代码示例 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 博客 [C 语言]二级指针案例 ( ...
最新文章
- php程序员面试题(持续补充,偏中级面试题)
- 构建Spring Boot程序有用的文章
- 为什么分布式一定要有redis,redis的一些优缺点
- QTP User-Defined Function 学习经验汇总
- java基础相关面试题
- 18100出多少取整_关于JavaScript数据类型,你知道多少?
- Disable STRICT_TRANS_TABLES @Mysql 5.7
- android studio2.4,Android Studio 2.4 Preview 7 发布
- java实训---------双色球彩票管理系统(LotterySystem)
- mybatis if test 之 like concat()函数
- KeilC51基础 利用仿真测试代码的运行时间
- 搭建静态的响应式个人官网
- vb脚本实现电脑定时关机操作
- 老毛子的二级路由,通过无线中继方式设置与主路由在同一网段
- STM32芯片包下载和安装教程
- C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。
- node快速搭建后台
- 计算机管理系统工具 下没有用户名密码,电脑设置管理系统用户账户,更改用户名,设置密码等...
- 关闭工单时报错 订单 XXXX 的未处理将来更改记录阻止删除标记/完成
- java程序员平时都使用哪些软件??