c语言中函数参数传递问题解答
#include<stdio.h>
#include<stdlib.h>
typedef struct{
int *elem;
int length;
}Lnode,*LinkList;
void Init(Lnode *L)
{
L->elem=(int*)malloc(10*sizeof(int));
L->length=0;
}
void main()
{
Lnode *A;
Init(A);
}
这个编译没错,运行的时候会终止
介绍一些关于函数传递的
[解决办法]
实参和形参问题,Init(LinkList L)函数要求地址传递
[解决办法]
void main(){LinkList A; // 补充: 这里实际上就是 Lnode * , 同样是没有具体分配空间,纯粹是一个无效指针.Init(A);//改: 这种调用在你的代码里面是没有问题的(编译可通过),但,思路很怪.总之一句话,不要在 Init()中malloc ....}
[解决办法]
#include<stdio.h>#include<stdlib.h>typedef struct{ int *elem; int length;}Lnode,*LinkList;void Init(Lnode *&L){L->elem=(int*)malloc(10*sizeof(int));L->length=0;}void main(){Lnode *A;Init(A);}