動(dòng)態(tài)申請(qǐng)內(nèi)存,,當(dāng)內(nèi)存大小不確定時(shí)需要申請(qǐng)內(nèi)存這是百度滴,是因?yàn)槲覜]有申請(qǐng)內(nèi)存么,可是為什么要申請(qǐng)內(nèi)存呢,下面代碼懷疑內(nèi)存有問題,輸出都是瞎輸出,#include<stdio.h>#define maxsize 30struct 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("請(qǐng)輸入順序表的長(zhǎng)度:");? ? 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]);? ? }}
2 回答

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
這個(gè)代碼沒有太大的問題吧。 你覺得運(yùn)行時(shí)有什么異常嗎?
這里不涉及申請(qǐng)內(nèi)存的。
L 是 main 函數(shù)中的,p 也是指向它的。scan 函數(shù)通過指針 p 操作 L,返回的也是同一個(gè)指針。 最后 print 通過 q 指針把 L 中的內(nèi)容打印出來。
這次?length 設(shè)置了正確的值,所以應(yīng)該能夠正常運(yùn)行的。
- 2 回答
- 0 關(guān)注
- 1321 瀏覽
添加回答
舉報(bào)
0/150
提交
取消