0
で終了 - エラーを与える:プロセスは、私はヘッドノードにアクセスするために、ここで、二重のポインタを使用している状態-1073741510
で終了します。
プログラム内の他のエラープロセスは、ステータス-1073741510私がソートされたリンクリスト</strong>に<strong>インサートにC++プログラムを書かれまし
#include<iostream>
using namespace std;
struct node
{
int data;
struct node* next;
};
void ins(int d,node** head)
{
node* temp=new node;
node* prev=new node;
temp->next=NULL;
temp->data=d;
if(head==NULL)
{
*head=temp;
}
else
{
node* ptr=*head;
while(ptr!=NULL && ptr->data<d)
{ prev=ptr;
ptr=ptr->next;
}
prev->next=temp;
temp->next=ptr;
}
}
void print(node* head)
{
node* ptr=head;int i=0;
while(ptr!=NULL)
{
cout<<i<<" "<<ptr->data<<" ";
i++;
ptr=ptr->next;
}
}
int main()
{
node* head=NULL;
ins(4,&head);
ins(10,&head);
ins(9,&head);
print(head);
return 0;
}`
このようなCスタイルのコード。あなたはノードごとにメモリを失っています* prev = new node;それを使用しないよりも。しかし、それはクラッシュなしで私のために働いています。 – KIIV
@ KIIV前のノードを保存するには、他の方法はありませんか? –
あなたは次のようなものを意味します:http://cpp.sh/56sv?しかし、C++には、通常、インタフェース全体をカプセル化する "コンテナクラス"が使用されています。このようなCスタイルの手続き型プログラミングはありません... – KIIV