Tag: 指向指针

C程序,为什么取消引用指针的char指针并没有得到预期的值

在这个程序中我有char变量a , b是指向b的指针, c是指向b的指针。 而*a=b , *c不等于b 。 我不明白为什么,谁能解释一下? 另一件事我不明白我如果将变量从char更改为int ,则取消引用c b值。 *c等于b 。但如果变量是char类型,则不是。 #include #include int main() { char a = “a” ; char *b; b = &a; printf(“%d\n”, b); printf(“%d\n\n”, &a); printf(“Deference b* hold value: %d\n”, *b); printf(“a hold value: %d\n\n”, a); char *c; c = &b; printf(“%d\n”, c); printf(“%d\n\n”, &b); printf(“Deference *c […]

带指针的嵌套结构

#include #include #include typedef struct node *tree_ptr; typedef struct table * Table; struct node { char* element; tree_ptr left, right; }; typedef struct table { tree_ptr head; int tree_h; }table; char* key = NULL; Table insert(char* insert_key,Table t) { int height = 0; //tree_ptr ptr = t->head; tree_ptr *ptr = &(t->head); key = strdup(insert_key); tree_ptr […]

如何将双指针用于二维矩阵?

我正在通过实施康威的生命游戏来尝试我的手。 我试图动态构建两个网格( int矩阵),一个用于当前,一个用于下一代,所以在确定下一代的外观之后,我只是交换指针。 起初我绝望地尝试定义指向网格的指针,如int * grid ,你不能使用第二组括号下标,如[][]因为 – 显然 – 第一组括号返回一个int。 我也试过像int * grid[HEIGHT][WIDTH] ,但是这给了一个像这样指向另一个指针的问题。 (事实上​​,我不知道这在内存中真正起作用了!) 在我天真的希望中,我认为以下两个指针的绊脚石可以奏效。 程序编译,但在指示的行上运行时失败。 (在Windows中,除了问题事件名称是APPCRASH之外,我没有得到更多细节)。 免责声明:这不是实际的程序,只是问题的概念certificate。 #include #include int HEIGHT = 20; int WIDTH = 20; int ** curr_gen; // Current generation int ** next_gen; // Next generation /* Entry Point main */ int main(int argc, char** argv) { // Allocate […]

指向数组语法的指针

我有关于指向数组的指针语法的问题。 我们知道数组本身就是指针(我们的教授说的是什么)所以为什么当我们用另一个指针指向它们时(它们是指向指针的指针)我们使用这种语法: int array[10]; int *pointer = array; 而不是这种语法: int array[10]; int **pointer = &array; 虽然我知道这是正确的使用malloc但为什么不以正常的方式,它是一个编译器或语法的东西或我错在其他地方?

如何使用指针指向C中的结构?

我想在双指针下改变结构的成员。 你知不知道怎么? 示例代码 typedef struct { int member; } Ttype; void changeMember(Ttype **foo) { //I don`t know how to do it //maybe *foo->member = 1; }