| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 136 人关注过本帖
标题:realloc 动太内存分配报错问题
只看楼主 加入收藏
niuniuchiniu
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2019-8-10
结帖率:33.33%
  已结贴   问题点数:20  回复次数:3   
realloc 动太内存分配报错问题
各位大神,下面的代码在VS 2015中报狂报错,而在DEV 中顺利编译,并打出正确结果,何解?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


void main()
{
    int num = 0;
   
    scanf("%d", &num);
    double *p = (double *)malloc(sizeof(double)*num);

    printf("%x\n", p);
    for (double i = 0.0; (int)i < num; (int)i++)
    {
        p[(int)i] = 1.1 + i;
        printf("%f\n", p[(int)i]);
    }

    int newsize = 0;
    scanf("%d", &newsize);
   
   
    double *newp = (double *)realloc(p, sizeof(double)*newsize);

    printf("%x\n", newp);


    for (int i = 0; i < newsize; i++)
    {
        newp[i] = i + 1.2;      


        printf("%f\n", newp[i]);
    }


    free(p);
    free(newp);

    system("pause");
}

[附件ID:attach_1名称:C:\fakepath\505.png]
搜索更多相关主题的帖子: realloc printf int double num 
2019-10-15 16:38
niuniuchiniu
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2019-8-10
  得分:0 
如图
附件: 您没有浏览附件的权限,请 登录注册
2019-10-15 16:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:328
帖 子:6778
专家分:39361
注 册:2011-1-18
  得分:20 
这什么代码呀
double *p = (double *)malloc(sizeof(double)*num); 虽然算不上错,但在C语言中,正是因为要避免写上冗余的(double *)才规定void*可以隐式转换为type*。
printf("%x\n", p); 估计你想要的是 %p
free(p); 你不是 realloc 它了吗?
2019-10-15 17:10
niuniuchiniu
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2019-8-10
  得分:0 
回复 3楼 rjsp
我累个去,原来是这么回事,我这乌七八糟的代码都是自娱自乐的,纯爱好.大神就别见笑了,问题已经解决.
2019-10-15 20:13
快速回复:realloc 动太内存分配报错问题
数据加载中...
 
   



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

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