| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:动态申请内存问题——是编译器错误吗?
取消只看楼主 加入收藏
zhuyi8120
Rank: 2
等 级:论坛游民
帖 子:34
专家分:12
注 册:2014-11-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
动态申请内存问题——是编译器错误吗?
#include<stdio.h>
#include <stdlib.h>

#define T 15
#define N 8
     int i,t;
   float *length;
    float *x;
    float *v;
    float *gap;  
    length=(float *)malloc(sizeof(float)*N);
    x=(float *)malloc(sizeof(float)*N*T);
    v=(float *)malloc(sizeof(float)*N*T);
    gap=(float *)malloc(sizeof(float)*N*T);
        if (length==NULL)printf("length申请不成功");
        if (x==NULL)printf("x申请不成功");
        if (v==NULL)printf("v申请不成功");
        printf("\nv=%p,x=%p,*v=%f,*x=%f\n",v,x,*v,*x);
        
    for(i=0;i<N/2;i++){//问题点
        for(t=0;t<T/2;t++){
            *(x+t*N+i)=i+1;
            *(v+t*N+i)=i+2;
            *(gap+t*N+i)=i+3;
            printf("x[%d][%d]=%f,",t,i,*(x+t*N+i));//该段必须存在,不然,程序崩溃
            printf("v[%d][%d]=%f,",t,i,*(v+t*N+i));
            printf("gap[%d][%d]=%f,",t,i,*(gap+t*N+i));
            }
            printf("\n");
        }

    free(x);free(v);free(length);free(gap);
--------
问题点在于,申请了空间,空间可以用,但是free不了。如果用了中间用了中间的那三句 prinft(....);,而赋值那三句,可用可不用。,就可以free,如果不用,则出现错误。
请各位指点程序是错在哪里,我怀疑是编译器问题。
搜索更多相关主题的帖子: include 编译器 动态 
2014-12-09 12:19
zhuyi8120
Rank: 2
等 级:论坛游民
帖 子:34
专家分:12
注 册:2014-11-4
收藏
得分:0 
我用的是C-Free编译器。
2014-12-09 12:19
zhuyi8120
Rank: 2
等 级:论坛游民
帖 子:34
专家分:12
注 册:2014-11-4
收藏
得分:0 
我就是逐步删除来试的,看来,确实是编译器的问题。
2014-12-09 18:24
zhuyi8120
Rank: 2
等 级:论坛游民
帖 子:34
专家分:12
注 册:2014-11-4
收藏
得分:0 
楼上该不是告诉我t*N,一定要写成 t * N,分开一个空格吧?
但这也与加不加printf有什么关系啊。
另外,如我刚才没看对,还请楼上明示!
我确认已经申请到内存了(在另一个完整版程序里能够成功运行一次 ,第二次重新申请内存时,是在free那里崩溃——无提示内容,直接崩溃。在此之前的数据因为已经写入文本文档,可查到运行记录。),但就是是无法释放,以重新申请一个更大的内存空间。明天开始换VC用下
2014-12-10 01:44
zhuyi8120
Rank: 2
等 级:论坛游民
帖 子:34
专家分:12
注 册:2014-11-4
收藏
得分:0 
莫名其妙地搞定了。
方法是,在该文档的前一版本里改好该项内容,发现 能够进行该项操作,于是把修改的内容进行处理,于是完成
2014-12-10 19:22
快速回复:动态申请内存问题——是编译器错误吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031083 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved