RE求助,关于delete
查看原帖
RE求助,关于delete
249478
Fgju楼主2021/9/18 21:00
#include <iostream>
using namespace std;

struct Node{
	unsigned id;
	Node* next;
	bool out;
	Node* newCircle(int n);
	void clear(){
		Node* temp = this->next;
		Node* ne = this->next = NULL;
		while (temp != NULL){
			ne = temp->next;
			delete temp;
			temp = ne;
		}
	}
};

typedef Node Circle;

Node* Node::newCircle(int n){
	Node* temp = this;
	for (int i = 1;i < n;++i){
		temp->next = new Node;
		temp->id = i;
		temp->out = false;
		temp = temp->next;
	}
	temp->id = n;
	temp->out = false;
	temp->next = this;
	return this;
}

int main(void){
	int n = 0, m = 0;
	cin>>n>>m;
	
	Circle a;
	a.newCircle(n);
	
	int count = 0;int now = 0;
	Node* ptr = &a;
	while (count < n){
		if (!ptr->out)
			++now;
		else{
			ptr = ptr->next;
			continue;
		}
						
		if (m == now){
			ptr->out = true;
			cout<<ptr->id<<' ';
			++count;now = 0;
		}
		ptr = ptr->next;
	}
	
	a.clear();//删去此处则可以AC
	
	return 0;
}

NULLnullptr一样会凉,求可靠的内存释放方法

2021/9/18 21:00
加载中...