新手c编程遇到问题

发布于 2022-09-01 06:29:49 字数 928 浏览 28 评论 0

#include <stdio.h>
struct table
{
    int num;   //首地址
    int size;   //内存大小
    int state;   //状态,分配或者未分配(0表示未分配,1表示分配)
};

int main()
{
    int i,m,size;
    table a[5];
    int state = 0;
    printf("分别输入5个表项的大小\t地址\t是否已分配:\n");
    printf("请输入要分配的内存空间大小:\n");
    for(i=0;i<5;i++)
    {
        scanf("%d%d%d",&a[i].num,&a[i].size,&a[i].state);
    }

    scanf("%d",&m);
    for(i=0;i<5;i++)        //遍历5个分区,判断需要分配的空间是否小于分区内存大小,是就改变分区状态
    {
        if(m<=a[i].size)     
             state = 1;
    }
    printf("大小\t|首地址\t|是否已分配:\n");
    for(i=0;i<5;i++)
    {
            printf("%d\t%d\t%d\n",&a[i].size,&a[i].size,&a[i].state);
    }

    return 0;
}

图片描述

在初始化结构体数组后,通过遍历判断是否存在有大小>=要分配的内存空间大小,存在就把是否已分配的 0改成1,但是遍历后结果是出现乱码,求解决!谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伤感在游骋 2022-09-08 06:29:49

printf("%d\t%d\t%d\n",a[i].size,a[i].size,a[i].state);

所谓喜欢 2022-09-08 06:29:49

struct (语法错)

在定义table时用`struct table a[6]`,改了这一点就可以跑出正确的了。
C++支持`table`,但C不可以

printf

`scanf()`本质上是往某一地址存东西,要取得变量的地址
`printf`只要取到变量的值即可,不需要地址
至于printf要取值还是地址,看需求。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文