代码的目的是让结构体里面的 List 指针指向申请的一维数组;curNumber表示目前数组里的元素个数;代码编译通过了,但是不能运行出来;求详解!
#include<stdio.h> #include<stdlib.h> typedef struct Stack{ int * List; int curNumber; }Stack, *link; int main(){ void initst(link *A); void pus(link *A,int k); link *A; int k = 8; initst(A); pus(A, k); return 0; } void initst(link *A){ *A = (link)malloc(sizeof(Stack)); (*A) -> List = (int *)malloc(4 * sizeof(int)); } void pus(link *A,int k){ *((*A)-> List) = k; printf("%d \n",*((*A) -> List)); }
三叔2016-11-03 10:45:02
link *A;int k = 8; initst(&A); ...void initst(link **A){ *A = (link)malloc(sizeof(Stack)); (*A) -> List = (int *)malloc(4 * sizeof(int)); }
想要在函数里面改变一级指针参数的指向,要使用二级指针