在 Linux 内核代码,特别是驱动代码中经常见到的用法是使用一个标准结构,后面的代码基于这个结构来实现,类似面向对象的多态特性。
在 C 语言里面借助结构体和函数指针实现的这个功能,这里我们写了个例子,提取了关键代码:
#include
struct s_new{
char name[10];
char* (* my_method)(char *name);...
分类:
系统相关 时间:
2014-05-23 07:58:18
阅读次数:
324
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
——————————————————————————————————————————————————————
分析:
...
分类:
其他好文 时间:
2014-05-22 12:58:08
阅读次数:
462
【题目】
原文:
2.2 Implement an algorithm to find the nth to last element of a singly linked list.
译文:
实现一个算法从一个单链表中返回倒数第n个元素。
【分析】
【思路一】
(1)创建两个指针p1和p2,指向单链表的开始节点。
(2)使p2移动n-1个位置,使之指向从头...
分类:
其他好文 时间:
2014-05-22 09:03:53
阅读次数:
315
指针悬空
指针悬空在我们使用指针的时候很容易被忽视,主要的表现是:指针所指向的内存
释放,指针并没有置为NULL,致使一个不可控制的指针。
#include
#include
int *pointer;
void func()
{
int n=8;
pointer=&n;
printf("pointer point data is %d\n",...
分类:
编程语言 时间:
2014-05-22 09:03:09
阅读次数:
371
数组其实是一种变相的指针,数组名同时也是指针,eg:
CODE == &CODE[0];
数组的加法:
#include
#define SIZE 4
int main(void)
{
shortdates[SIZE];
short* pti;
shortindex;
doublebills[SIZE...
分类:
编程语言 时间:
2014-05-22 08:48:53
阅读次数:
276
一 C++中表达式的分类
传统C++的变量表达式分为左值和右值。通俗来讲,两者有着如下区别:
1.从生命周期上来看:左值就是非临时对象,那些可以在多条语句中使用的对象。所有的变量都满足这个定义,在多条代码中都可以使用,都是左值。右值是指临时的对象,它们只在当前的语句中有效;
2.左值是有名字的(通过其他具名对象间接得到的,例如通过返回引用的函数,或通过指针解引用(* 运算符)),有固定的存放...
分类:
编程语言 时间:
2014-05-22 08:43:44
阅读次数:
428
用静态链表(数组)去解这道二叉搜索树的题目。无需使用链表、指针,无需自定义结点类型,操作简单。仅仅是将空间上的二叉搜索树映射到一维数组上。...
分类:
其他好文 时间:
2014-05-22 07:20:53
阅读次数:
209
写的一个Android对话框,点击按钮获取EditText里面的值,这里一直报空指针异常,研究了很长时间终于解决了。
异常如下:
我原来的代码:
//更新对话框
private void updateDialog(final String id){
TableLayout updatemsg = (TableLayout)getLayoutInflater().inflate(...
分类:
移动开发 时间:
2014-05-22 06:40:46
阅读次数:
355
给定一个向量,其中的每个元素代表了高度,比如height[3] = 5,说明在坐标轴中在点3处存在高度为5的竖线,这样所有的元素就形成一个琴状的形状,最后要求的就是两条竖线之间的矩形形状最大的面积。最直觉的做法就是穷举,这样的复杂度是O(n2),显然还有更合适的方法,因为在这样的方法中有很多确定要小的面积也进行了计算。关于面积有两个变量,一个是横轴之间的距离,;另一个是两条竖轴之间的距离。我们可以固定其中一个变量,很显然,我们可以先取最远的两条竖线进行比较,然后使两个辅助指针逐渐缩小,取两个辅助指针中的较小...
分类:
其他好文 时间:
2014-05-20 15:44:28
阅读次数:
227