免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: tide_lll
打印 上一主题 下一主题

求教结构体问题(急) [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2004-07-18 12:15 |只看该作者

求教结构体问题(急)

》》malloc(indiv_size*sizeof(INDIVIDUAL));
》》malloc(indiv_size*sizeof(INDIVIDUAL));

这两句分配的内存给谁了?

论坛徽章:
0
12 [报告]
发表于 2004-07-18 12:39 |只看该作者

求教结构体问题(急)

原帖由 "lenovo" 发表:
》》malloc(indiv_size*sizeof(INDIVIDUAL));
》》malloc(indiv_size*sizeof(INDIVIDUAL));

这两句分配的内存给谁了?


我是想给population里面的每个individual.但是不太会用。我还是习惯了fortran里面的数组。呵呵

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2004-07-18 12:42 |只看该作者

求教结构体问题(急)

难怪会出错。
找本c语言教材,看看怎么赋值吧。

论坛徽章:
0
14 [报告]
发表于 2004-07-18 12:45 |只看该作者

求教结构体问题(急)

呵呵,现在比较急,请指点,看看我的代码那块有错误?

如果我不分配呢?
Aragorn 该用户已被删除
15 [报告]
发表于 2004-07-18 12:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
16 [报告]
发表于 2004-07-18 13:05 |只看该作者

求教结构体问题(急)

原帖由 "Aragorn" 发表:

你是学什么的? 这是用于哪方面的寻优?
  1. typedef struct indiv
  2.             {  float x[MAXVECSIZE];     /* variables            */
  3.                float obj;               /* objective fn. value  */
  4.                float mod_obj;           /* modified objective   */
  5.                unsigned *chrom;         /* chrosome string      */
  6.                int parent1;
  7.                int parent2;             /* s.no. of parents     */
  8.                float cross_var;         /* cross over variable  */
  9.             }INDIVIDUAL;
  10. typedef struct pop
  11.                         {
  12.                         INDIVIDUAL *individual;   /* indiv of each populatin */
  13.                         int pop_id;                                        /* the ID of the poputation in the multi-pop~. */               
  14.                         float x_pop_lower[MAXVECSIZE];
  15.                         float x_pop_upper[MAXVECSIZE];
  16.                         }POPULATION;

  17. POPULATION *oldpop, *newpop;

  18. ..........

  19.    oldpop = (POPULATION *)malloc(pop_size*sizeof(POPULATION));
  20.    newpop = (POPULATION *)malloc(pop_size*sizeof(POPULATION));
  21.    for (k=0; k<= pop_size-1; k++)
  22.    {
  23.     oldpop[i].individual = (INDIVIDUAL*) malloc(indiv_size*sizeof(INDIVIDUAL));
  24.     newpop[i].individual = (INDIVIDUAL*) malloc(indiv_size*sizeof(INDIVIDUAL));

  25.          for (l=0; l<= indiv_size-1; l++)
  26.          {
  27.                   oldpop[k].individual[l].parent1 = oldpop[k].individual[l].parent2 = 0;
  28.                   for (j=0; j<=num_var-1; j++)
  29.                         {
  30.                          u = randomperc();
  31.                          oldpop[k].individual[l].x[j] = x_lower[j] * (1-u) + x_upper[j] * u;
  32.                         }
  33. ..........

  34. 修改后的这样,但是还是执行到
  35.     oldpop[i].individual = (INDIVIDUAL*) malloc(indiv_size*sizeof(INDIVIDUAL)); 出错,是不是我定义的population 类型的指针newpop,和oldpop,不能用    oldpop[i].individual 这么访问,不过我觉应该没问题的。

  36. 谢谢。
复制代码

论坛徽章:
0
17 [报告]
发表于 2004-07-18 13:55 |只看该作者

求教结构体问题(急)

原帖由 "lenovo" 发表:
难怪会出错。
找本c语言教材,看看怎么赋值吧。


经过修改后,已经好了。谢谢Aragorn  和lenovo     网友。

论坛徽章:
0
18 [报告]
发表于 2004-07-18 20:49 |只看该作者

求教结构体问题(急)

我看是应该把oldpop, newpop 定义成结构体数组

论坛徽章:
0
19 [报告]
发表于 2004-07-19 09:56 |只看该作者

求教结构体问题(急)

针对单片机(如手机,电器等)的开发,通常这些单片机出厂之后厂家都会提供一个简单的API,而嵌入式开发就是利用此API来进行开发的。
这是我的理解,请大家指正!

论坛徽章:
0
20 [报告]
发表于 2004-07-22 16:12 |只看该作者

求教结构体问题(急)

不分配内存,就访问指针的所指向的内存,运行时肯定会出错的,有时候是很严重的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP