程式如下 當輸入0 1 2 3 4 5 6 7 8 9時運行出來的結果是-858993460 我查了一下是記憶體溢位 可是為什么啊
#include<iostream>
#include<stdlib.h>
#define Maxsize 100
using namespace std;
typedef struct
{
int data[Maxsize];
int length;
}Sqlist;
int Initlist(Sqlist L)
{
L.length=0;
return 1;
}
int Creatlist(Sqlist L)
{
int i;
cout<<"請輸入:"<<endl;
for(i=0;i<10;i++)
{
cin>>L.data[i];
L.length++;
}
return 1;
}
int Getelem(Sqlist L,int i,int &e)
{
e=L.data[i-1];
return 1;
}
int main()
{Sqlist s;
int p=100;
Initlist(s);
Creatlist(s);
Getelem(s,2,p);
cout<<p<<endl;
system("pause");
}
uj5u.com熱心網友回復:
兄弟, 你這樣傳值呼叫, 當然不得行啊.要么傳參考,要么傳指標。
uj5u.com熱心網友回復:
int Initlist(Sqlist L)int Creatlist(Sqlist L)
int Getelem(Sqlist L,int i,int &e)
這些Sqlist 不應該是參考嘛?
uj5u.com熱心網友回復:
int Initlist(Sqlist &L) {L.length = 0;
return 1;
}
int Creatlist(Sqlist &L) {
int i;
cout << "請輸入:" << endl;
for (i = 0; i < 10; i++) {
cin >> L.data[i];
L.length++;
}
return 1;
}
int Getelem(Sqlist &L, int i, int &e) {
e = L.data[i - 1];
return 1;
}
uj5u.com熱心網友回復:
支持一下
uj5u.com熱心網友回復:
嗯,我知道哪里有問題了,謝謝各位!! 那么問題又來了 如果有有單鏈表typedef struct Node
{
int data;
Node *next;
}Node,*LinkList;
那么 在鏈表的i位置插入一個結點
void ListInsert(LinkList & L,int i,int e)
{
int j;
LinkList p,s;
p=L->next;
j=1;
while(p&&j<i)
{
p=p->next;
j++;
}
s=(LinkList)malloc(sizeof(Node));
s->data=https://bbs.csdn.net/topics/e;
s->next=p->next;
p->next=s;
}
LinkList s;這一句不是已經給s申請記憶體空間了嗎,為什么還要s=(LinkList)malloc(sizeof(Node));這句話?
uj5u.com熱心網友回復:
你看的哪里的例子? p 以及 s 僅僅是一個指標, 并沒有為其初始化實體。感覺你基礎稍微差了點, 建議多看看入門教程類的書。 另外,關于單鏈表的技術,度娘能告訴你。
uj5u.com熱心網友回復:
我似乎明白了,我看的《大話資料結構》 ,基礎是差了點
不怕差,就怕不學
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111523.html
標籤:基礎類
上一篇:FireBird如何存取圖片
