猿问

我们为什么要申请内存,今天写代码突然想到这个问题???

动态申请内存,,当内存大小不确定时需要申请内存这是百度滴,是因为我没有申请内存么,可是为什么要申请内存呢,下面代码怀疑内存有问题,输出都是瞎输出,

#include<stdio.h>

#define maxsize 30

struct sqlist

{

    int num[maxsize];

    int length;

};

struct sqlist* scan(struct sqlist* L,int n)

{

    

L->length=0;

    int i;

    for(i=0; i<n; i++)

    {

        L->length++;

        scanf("%d",&L->num[i]);

      

    }


    return L;

}

int main()

{

    printf("请输入顺序表的长度:");

    int n;

    struct sqlist L;

    struct sqlist *p,*q;

    scanf("%d",&n);

    p=&L;

    q=scan(p,n);

    print(q);

}


void print(struct sqlist* L2)

{

    printf("顺序表为:\n");

    int i;

    for(i=0; i<L2->length; i++)

    {

        printf("%d ",L2->num[i]);

    }

}


冯宝宝
浏览 1286回答 2
2回答

onemoo

这个代码没有太大的问题吧。 你觉得运行时有什么异常吗?这里不涉及申请内存的。L 是 main 函数中的,p 也是指向它的。scan 函数通过指针 p 操作 L,返回的也是同一个指针。 最后 print 通过 q 指针把 L 中的内容打印出来。这次 length 设置了正确的值,所以应该能够正常运行的。
随时随地看视频慕课网APP
我要回答