ubuntu,debian,redhat,fedora,centos
标签类目:sizeof

C语言中几种指针的指针用法

分类:C/C++1、 简单来说 int **p 是一个指向2维数组的指针。
数学上一个2维数组描述有NR行,NC列的矩阵,例如 int a[NR][NC];
为了使程序有通用性,编程时不把这个数组行列数定死,而让使用者临时输入行列数,再动态分配数组存放单元,这时,我们声明一个2维数组的指针(或叫二重指针)。

  1. int NR,NC;
  2. int **a;
  3. int i,j;
  4.  
  5. // 假定键盘输入 NR=5,NC=3,动态分配数组:
  6. a = (int **) malloc(sizeof(int *) * NR);
  7. for (j=0;j<nr ;j++) a[j] = (int *) malloc(sizeof(int) * NC);

继续阅读 »

将一个结构体拷贝到字符数组缓冲区,再读出

分类:C/C++

  1. #include <stdio.h> 
  2. #include <memory.h> 
  3.  
  4. typedef struct 
  5. { 
  6. int cmd;
  7. void *param;
  8. }st;
  9.  
  10. char buf[50];
  11.  
  12. int main(int argc, char* argv[]) 
  13. { 
  14. st st1,*st2;
  15. st1.cmd = 1;
  16. st1.param = &st1.cmd;
  17.  
  18. memcpy(buf, &st1, sizeof(st));
  19.  
  20. st2 = (st*)buf;
  21. printf("cmd:%d\n", st2->cmd);
  22. printf("param:%d\n", st2->param);
  23. return 0;
  24. }
返回顶部