900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > c语言结构体数组内存大小 如何为C语言的结构体数组分配/释放内存?

c语言结构体数组内存大小 如何为C语言的结构体数组分配/释放内存?

时间:2023-09-27 11:27:01

相关推荐

c语言结构体数组内存大小 如何为C语言的结构体数组分配/释放内存?

如何为C语言的结构体数组分配/释放内存?

structemp

{

charname[10];

floatsalary;

};

intmain(intargc,char*argv[])

{

structemparray_emp[1000000];

解决方案:2分

/q345852047/article/details/7348038

解决方案:30分

#include

#include

#include

#include

structemp{

charname[10];

floatsalary;

};

intmain(){

structemp*array_emp;

array_emp=malloc(1000000*sizeof(structemp));

if(NULL==array_emp){

printf("Cannotmalloc1000000emp!\n");

return1;

}

strcpy(array_emp[999999].name,"123456789");

array_emp[999999].salary=50000.0f;

free(array_emp);

return0;

}

解决方案:1分

第12行array_emp=malloc(1000000*sizeof(structemp));

应改为

array_emp=(structemp*)malloc(1000000*sizeof(structemp));

解决方案:1分

也许PRO*C和标准C不同。每弄过PRO*C,爱莫能助。

#include

#include

#include

#include

structemp{

charname[10];

floatsalary;

};

intmain(){

structemp*array_emp;

inti;

array_emp=(structemp*)malloc(1000000*sizeof(structemp));

if(NULL==array_emp){

printf("Cannotmalloc1000000emp!\n");

return1;

}

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);

return0;

}

//000.000000

//100001000010000.000000

//200002000020000.000000

//300003000030000.000000

//400004000040000.000000

//500005000050000.000000

...

//

解决方案:1分

每弄过→没弄过

解决方案:1分

structPoint{

intx;

inty;

}

Point*pt;

pt=(Point*)malloc(10*sizeof(Point));

//dosth

free(pt);

然后就可以用下标来操作了

pt[0].x=12;

解决方案:1分

来看看11楼的回答

解决方案:1分

是因为只有1条数据的缘故吧

解决方案:1分

高手我这样定义似乎可以了,这样定义,我没法根据表的记录数来分配内存了,必须写死记录数了?

structemp

{

charname[1000000][10];

floatsalary[1000000];

};

但是和如下定义有什么区别马?

structemp_record

{

charname[10];

floatsalary;

};

个人感觉本质上来说没区别,但是一般不选择上面的,不方便。

解决方案:1分

看到5w的salary,其它的就不想看了,人生的差距最大不过如此……

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。