C/C++中结构体(struct)知识点强化(二)
C/C++中结构体(struct)知识点强化(二)
出处:PConline 2005年03月07日 作者:管宁 责任编辑:xietaoming
首先,我们写这个程序,要考虑到由于是一个链表结构,我们不可能知道它的大小到底是多大,这个问题我们可以用动态开辟堆内存来解决,因为堆内存在程序结束前始终是有效的,不受函数栈空间生命期的限制,但要注意的是我们必须有一个指针变量来存储这一链状结构的进入地址,而在函数内部来建立这一指针变量显然是不合适的,因为函数一旦退出,这个指针变量也随之失效,所以我们在程序的开始声明了一个全局指针变量。
test *head;//创建一个全局的引导进入链表的指针
好解决了这两个问题,我们接下去思考
有输入就必然有输出,由于输出函数和输入函数是相对独立的,为了不断测试程序的正确性好调试我们先写好输出函数和main函数捏的调用,创建函数我们先约定好名为create。
我们先写出如下的代码:
#include <iostream>
using namespace std;
struct test
{
char name[10];
float socre;
test *next;
};
test *head;//创建一个全局的引导进入链表的指针
test *create()
{
return head;//返回链首指针
}
void showl(test *head)
{
cout<<"链首指针:"<<head<<endl;
while(head)//以内存指向为null为条件循环显示先前输入的内容
{
cout<<head->name<<"|"<<head->socre<<endl;
head=head->next;
}
}
void main()
{
showl(create());
cin.get();
cin.get();
}
程序写到这里,基本形态已经出来,输入
相关文档:
找错题
试题1:
void test1()
{
char string[10];
char* str1 = "0123456789";
strcpy( string, str1 );
}
试题2:
void test2()
{
char string[10], str1[10];
int i;
for(i=0; i<10; i++)
{
str1[i] = 'a';
}
strcpy( string, str1 );
}
试题3:
void test3( ......
一. 首先做一个简单的so文件:
/**
* hello.c
* To compile, use following commands:
* gcc -O -c -fPIC -o hello.o hello.c
* gcc -shared ......
原文地址:http://dev.yesky.com/147/2356147.shtml
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能 ......
对于序列求和的程序大家不会陌生,而我今天看到的这个程序个人觉得比较好,所以贴上来共享一下。
要求:输入类似于87 98 67 56 0的任意序列,但是以零结尾。然后输出序列的和。
程序如下 :
/********************************************
* Name : sum.c
* Purpose : sum
* Author : zimo
  ......
前两天去了家游戏公司面试c/c++,题目做的很差,回来查查才发现题目大部分来自这篇文章《高质量C++/C编程指南》,有空得好好看看。
《高质量C++/C编程指南》
http://man.chinaunix.net/develop/c&c++/c/c.htm#_Toc520633987 ......