数组判断全零的一些代码研究
摘要:最精简版本 int check_data(int *array, int n) { while(n--) if (*array++ != 0x00) return 0; return 1; } 返回1 array数组全零,否则正常非全零。 int check_data(int *array) { w
阅读全文
一个易出错的数组题目
摘要:上题目,下面上一个分析: n = 10, i = 9, pa[6] = pa[6] + pa[9]; ........ 过程中出现pa[6] + pa[6],此时的pa[6] != 7,而是现内存下的值pa[6] = 0 + 9 + 8 + 7 = 24 pa[6] = pa[6] + pa[6]
阅读全文
二分法的理解与进化
摘要:最基础的二分法算法C int search_digit(int *num,int cnt,int target) { int first = 0; int last = cnt - 1; int mid;/* |x x x x o| -> |x x m x o| x m x */ while(fir
阅读全文
strcpy、strncpy 和安全的strncpy_s
摘要:strcpy和strncpy摘于linux 内核源码的/lib/string.c char *self_strcpy(char *dest, const char *src) { char *tmp = dest; while ((*dest++ = *src++) != '\0') /* noth
阅读全文
如何看待malloc产生内存碎片
摘要:上代码直接研究: int main() { int *heap_d; int *heap_e; int *heap_f; heap_d = (int *)malloc(10); heap_e = (int *)malloc(10); printf("The d address is %p\n",he
阅读全文
Linux C申请内存三种基本方式
摘要:一份代码可以知道具体方式和原理: int main() { int stack_a; int stack_b; static int static_c; static int static_d; int *heap_e; int *heap_f; heap_e = (int *)malloc(10)
阅读全文
一种基于USB转串口的设备如何赋予权限
摘要:1. 利用open打开USB转串口的设备遇到打开异常。 若用vs调试代码,则需要usermod 对应归到watson组下,因为watson这个是vs ssh连接虚拟机的用户名,若用root则无法使用改串口。
阅读全文
const char * 组合理解
摘要:1 . const char *ptr 从char *ptr 可以理解为指向字符常量的指针,ptr是一个指向char *的常量,*ptr的值为const,不能修改。 2. char const *ptr 同上 3. char * const ptr 定义一个指向字符的指针常数,不能修改指针,但可以修
阅读全文