摘要:
一般的来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意这里指的是栈,返回指向堆内存的指针是可以的)。 下面以函数返回局部变量的指针举几个典型的例子来说明:1:[cpp]view plaincopy#includechar*returnStr(){char* 阅读全文
摘要:
上例子常见的三种数组作为传入参数#includefloat average1(float a[5]){ int i; float sum=0; for(i=0;i<5;i++) { sum+=a[i]; } printf("1:%d %f\n",sizeof(a),sum);}float average2(float a[]){ int i; float sum=0; for(i=0;i<5;i++) { sum+=a[i]; } printf("2:%d %f\n",sizeof(a),sum... 阅读全文
摘要:
addrinfo结构体的定义如下:struct addrinfo{intai_flags;/*customize behavior*/intai_family;/*address family*/intai_socktype;/*socket type*/intai_protocol;/*protocol*/socklen_t ai_addrlen;/*lengthinbytes of address*/struct sockaddr*ai_addr;/*address*/char*ai_canonname;/*canonical name of host*/struct addrinfo*a 阅读全文
摘要:
#include#include typedef struct node { int data; struct node *next; }Node; //创建链表 Node *CreateList(void) { int val,i,n; Node *head,*p,*q; head=NULL; printf("请输入您要建立的链表长度:\n"); scanf("%d",&n); printf("请输入您要输入的数据:\n"); for(i=0;idata=val; if(head==NULL... 阅读全文
摘要:
1 int main(int argc, char** argv)2 {3 int a[5] = {1,2,3,4,5};4 int* ptr = (int*)(&a + 1);5 printf("%d,%d\n", *(a+1), *(ptr-1));6 return 0;7 }这道题在很多所谓经典C语言面试题里是常见的不能再常见,你知道输出结果吗?答案是:2,5但是仍有许多人不能答对,也包括当初的我。这道题简简单单,但是考察了不少于如下内容:数组指针、数组首地址概念、数组指针和数组首地址和数组首元素地址之间的关系,指针运算规则,指针类型,int型长度,指针长.. 阅读全文
摘要:
先让指针q指向 数组空间data;然后传入指针q的地址给;put16函数;写入16bit位uint8_t data[1012], *q;q = data;put16(&q, 0xe000 | service->pcr_pid);利用二级指针写入16个bitstatic inline void put16(uint8_t **q_ptr, int val){ uint8_t *q; q = *q_ptr; *q++ = val >> 8; *q++ = val; *q_ptr = q;}此时q_ptr指向的是出入参数q的内存地址(即指针的指针)*q_ptr相当于出入.. 阅读全文
摘要:
(1)选择 Global options(2)选择 Default Session(3)选择 Monochrome;然后再选择Edit;然后即可编辑背景颜色;和字体颜色 阅读全文
摘要:
为了满足某些目的,进行日志记录是很有必要的。 在典型的 LINUX 安装中,/var/log/messages包含所有的系统消息,/var/log/mail包含来自邮件系统的其它日志消息,/var/log/debug可能包含调试消息。根据你的LINUX的版本,你可以在/etc/syslog.conf或者/etc/syslog-ng/syslog-ng.conf文件里检查你的系统(消息)配置情况。 尽管系统消息的格式和存储位置可能不同,但产生消息的方法却是标准的。UNIX 技术规范(specification)为所有程序生成日志消息提供了一个接口,这通过 syslog()函数实现: #i... 阅读全文
摘要:
一、查看文件行数 wc -l 阅读全文