起因: 使用void * 指针传参, 改了半天没出bug。

 

指针数组array of pointers,即用于存储指针的数组,也就是数组元素都是指针

数组指针a pointer to an array,即指向数组的指针

 

大一看这名称可以理解, 时间久了就忘记了, 咱们可以这样理解。

指针数组 是 数组 —— 数组里存的是指针。 定义: char *p[2]; 

数组指针指针 —— 指针指向的是数组。 定义: char (*p)[2]; 


指针数组:

/**** 指针数组 ****/

//数组都是指针, 要分配内存, 在赋值 。 
char *p[2]; 
p[0] = (char*)malloc(10*sizeof(char)); 
p[1] = (char*)malloc(10*sizeof(char)); 

strcpy(p[0], "in.txt"); 
strcpy(p[1], "111"); 

fprintf(stderr, "%s %s\n", p[0], p[1]); 

  

数组指针:

/**** 数组指针 ****/
#define NMAX 10

char outFileName[2][NMAX]; 
strcpy(outFileName[0], "out.txt"); 
strcpy(outFileName[1], "222"); 

//argv 就是数组指针。
char (*p)[NMAX]; 
p = outFileName; 
fprintf(stderr, "%s %s\n", p[0], p[1]); 
//结果是: out.txt 222

  

 

以上代码仅供参考,我是复制上去, 然后手动修改了一些,可能有些bug存在, 有请大神告知。

相关文章:

  • 2022-01-19
  • 2021-06-04
  • 2021-08-21
猜你喜欢
  • 2021-09-06
  • 2021-04-22
  • 2021-10-27
  • 2021-05-23
  • 2021-07-15
  • 2022-12-23
  • 2021-05-10
相关资源
相似解决方案