我想用integeres創建一個鏈表,並在每個兩個節點之間創建另一個節點,它是前一個節點和後一個節點之間的平均值。鏈接列表中的指針錯誤?
在我添加功能我不明白爲什麼我的p指針在鏈表中的,而不是在第一次的最後一個元素。 (這就是我認爲它崩潰的原因)。
謝謝。
#include<iostream>
using namespace std;
struct Nod{
int info;
Nod* urm;
};
void create(const int &a, Nod *&p, Nod *&u)
{
if (p == NULL)
{
p = new Nod;
p->info = a;
u = p;
}
else
{
Nod *q;
q = new Nod;
q->info = a;
u->urm = q;
u = q;
}
u->urm = NULL;
}
void print(Nod *p)
{
while (p->urm)
{
cout << p->info<<" -> ";
p = p->urm;
}
cout << p->info;
}
void add(Nod *p)
{
while (p)
{
Nod *q;
q = new Nod;
q->info = (p->info + p->urm->info)/2;
q->urm = p->urm;
p->urm = q;
p = p->urm->urm;
}
}
int main()
{
Nod *p, *u;
p = u = NULL;
char *numar;
numar = new char[100];
cout << "Enter a number: "; cin >> numar;
for (int i = 0; (unsigned)i <= strlen(numar) - 1; i++)
create(numar[i] - '0', p, u);
add(p);
print(p);
system("Pause");
return 0;
}
你正在得到什麼錯誤? – 2014-11-25 05:32:35
崩潰L3_P2.exe中的0x013C5A78處未處理的異常:0xC0000005:訪問衝突讀取位置0x00000000。 – Stefan 2014-11-25 05:34:34