请问c语言如何从函数返回带有数组的结构体?

例如结构体typdefstruct{int*elm;intlen;}list;函数内listtemp;temp.elm=(list*)malloc(5*sizeof(list));这样之后要如何返回这个temp呢?如果直接返回好像会因为数组的原因报错。... 例如结构体 typdef struct { int *elm; int len; }list; 函数内 list temp; temp.elm=(list*)malloc(5*sizeof(list)); 这样之后要如何返回这个temp呢? 如果直接返回好像会因为数组的原因报错。 展开

第1个回答  2020-03-11
你说的这种情况,函数返回的是整个结构体,无论这个结构体中包含了多少个成员,一个结构体就只是一个变量(结构体本身就是一个变量,无论它包含了多少个成员)。这样,函数返回一个结构体就意味着函数把结构体中所有的成员都返回了。C语言函数的确只能有一个返回值,用返回结构体的方式就很好地解决了需要返回多个返回值的问题。
return后面没有0或1,说明这个函数是void类型的,这类函数本来就不需要有返回值,这里的return的意思并不是要返回某个值,而是退出这个函数的意思。
相似回答