Tag: 指针到指针

指针指针和指向2d数组的指针之间的区别

如果我有一个2d数组B定义为: int B[2][3] = {{1,3,5},{2,4,6}}; int **p = B与int (*p)[3] = B吗? int **f = B; printf(“%d “,*f+1); 输出5作为输出,而printf(“%d “,*f)给出1作为答案。 为什么会这样? printf(“%d “,**f); 返回分段错误! 为什么?

将多维数组传递给C中的函数

我有这样的function: void myfunc(int** arr, int n) { int i, j; for(i=0; i<n; ++i) { for(j=0; j<n; ++j) { printf("%d,", *(arr + i*n + j) ); // Print numbers with commas } printf("\n"); // Just breakline } } 在其他函数中,我有一个像这样的二维数组: int main() { int seqs[8][8] = { {0, 32, 36, 52, 48, 16, 20, 4}, {0, 16, […]

为什么pthread_join()的第二个参数是**,指向指针的指针?

我是使用pthread新手,也不熟悉指针指针。 有人可能会解释为什么pthread_join()的第二个参数是一个void ** 。 为什么这样设计。 int pthread_join(pthread_t thread, void **value_ptr);

指针数组的动态内存分配

我正在尝试编写一个程序,该程序从文本文件中读取一系列字符串,并将它们存储在字符串数组中,为每个元素动态分配内存。 我的计划是使用指针将每个字符串存储在一个数组中,然后在读入更多数据时增大数组大小。我很难理解为什么我的测试代码无效。 这是一个可行的想法吗? char *aPtr; aPtr =(char*)malloc(sizeof(char)); aPtr[0]=”This is a test”; printf(“%s”,aPtr[0]);