急!一个C++问题!希望大家能帮个忙!谢谢
#include <iostream>
#include <string>
using namespace std;//申明结构
struct Elephant
{
string name;
Elephant* next;
};
void print_elephants( const Elephant* ptr );
Elephant* get_elephants();
void free_list( const Elephant* ptr );
int main()
{
Elephant* start;
start = get_elephants();
print_elephants( start );//由于start是指针类型,作为此函数的参数,会在此函数的作用下,start所指向的内存地址会改变,当此函数返回时,start已经为0
free_list( start ); //因此,当再调free_list(start)时,按理说应该不有任何作用了,但此函数还是被调用了!也就是说此时start还是start=get_elephants(),这是为什么啊?
return 0;
}
Elephant* get_elephants()//创建链表
{
Elephant *current,*first;
int response;
current =first=new Elephant;
cout << "\nNAME: ";
cin >> current -> name;
cout << "\nAdd another? (1 == yes, 0 == no): ";
cin >> response;
while ( response == 1 )
{
current = current -> next = new Elephant;
cout << "\nNAME: ";
cin >> current -> name;
cout << "\nAdd another? (1 == yes, 0 == no): ";
cin >> response;
}
current -> next = 0;
return first;
}
void print_elephants( const Elephant* ptr )//打印
{
int count = 1;
cout << "\n\n\n";
while ( ptr != 0 ) {
cout << "Elephant number " << count++
<< " is " << ptr -> name << '\n';
ptr = ptr -> next;
}
}
void free_list( const Elephant* ptr )//释放
{
const Elephant* temp_ptr;
while ( ptr != 0 )
{
cout<<"1111111111111111"<<endl;
temp_ptr = ptr -> next;
delete ptr;
ptr = temp_ptr;
}
}
希望高手们能帮个忙,小弟我不胜感谢!
相关推荐
解析VScode在Windows环境下c_cpp_properties.json文件配置问题(推荐)
正确地配置c_cpp_properties.json文件是非常重要的,以便正确地编译和运行C和C++程序。希望这篇文章能够对大家的学习和工作产生一定的帮助和借鉴价值。
使用Gradle编译C++代码并添加CPP插件
在开发C++项目时,使用Gradle作为构建工具可以提供便捷的构建和依赖管理。以上步骤完成后,你就可以使用Gradle来构建和管理你的C++项目了。通过添加CPP插件,Gradle会自动为你创建构建任务,并处理C++的依赖关系。这是一个简单的示例,帮助你开始使用CPP插件在Gradle中编译C++代码。注意:确保你的电脑上安装了正确的C++编译器,并且Gradle能够找到它。接下来,我们创建一个新的Gradle项目,并进行以下配置。部分定义了我们的主要组件,包括源代码的位置和导出头文件的位置。
使用Whisper.cpp编译和运行C++程序
上述命令中的"whisper.cpp"是我们使用的编译器,“hello.cpp"是要编译的源代码文件,”-o hello"指定了输出文件的名称为"hello"。请注意,这只是一个演示,Whisper.cpp并不是一个真实存在的编译器,您需要使用适当的C++编译器来编译和运行实际的C++代码。上述命令中的"./hello"表示运行当前目录下的"hello"可执行文件。首先,让我们创建一个名为"hello.cpp"的C++源代码文件,其中包含一个简单的"Hello, World!如果您有任何疑问,请随时提问。
cpp代码-C++基础
本资料包“cpp代码-C++基础”是针对初学者和那些希望巩固C++基础知识的人们设计的,它包含了两个关键文件:README.txt和main.cpp。
c++教材—-cpp实训
教材的各个文档,如CPP教材1qR.doc至CPP教材9qR.doc,以及相应的实训文档CPP实训1qR.doc至CPP实训12qR.doc,共同构成了一个完整的C++学习体系。


