一个初级的问题:
char *a; char **arr, **firstPos;
a = (char *) malloc(8);
strcpy(a,"123");
arr = & a;
firstPos = arr;
arr ++;
a = (char *) malloc(8);
strcpy(a,"456");
arr = & a;
运行发现 第二次 arr = &a 之后, *firstPos 的值也变成了"456"
原因在于:
arr 中存放的是a 的地址(一直不变的) Initialization 的方法 1. char *a[] = {"123", "456",NULL}; char **arr; arr = a; 2.int **array1 = (int **)malloc(nrows * sizeof(int *)); for(i = 0; i
char *a; char **arr, **firstPos;
a = (char *) malloc(8);
strcpy(a,"123");
arr = & a;
firstPos = arr;
arr ++;
a = (char *) malloc(8);
strcpy(a,"456");
arr = & a;
运行发现 第二次 arr = &a 之后, *firstPos 的值也变成了"456"
原因在于:
arr 中存放的是a 的地址(一直不变的) Initialization 的方法 1. char *a[] = {"123", "456",NULL}; char **arr; arr = a; 2.int **array1 = (int **)malloc(nrows * sizeof(int *)); for(i = 0; i