指向结构的指针作为形参时候的问题
我写一个链表插入函数,
typedef struct ELemtype
{
char name[20];
short num;
int id;
} Elemtype;
typedef struct LNode
{
Elemtype data;
struct LNode *next;
} Lnode;
#define ELEMSIZE sizeof(Elemtype)
#define NODESIZE sizeof(Lnode)
#define LINKSIZE 100
void InsertLink(Lnode **Link, Elemtype *elem)
{
Lnode *node=*Link;
//Lnode *head=NULL;
if(!node) //If it is an empty link, set elem as the head
{
node=(Lnode *)malloc(NODESIZE);
node->next=NULL;
memcpy(&(node->data),elem,ELEMSIZE);
*Link=node;
}
else
{
while(node)
{
node=node->next;
}
node=(Lnode *)malloc(NODESIZE);
node->next=NULL;
memcpy(&(node->data),elem,ELEMSIZE);
}
// *Link=node;
}
红色部分是不是不对呀,程序总是有问题
typedef struct ELemtype
{
char name[20];
short num;
int id;
} Elemtype;
typedef struct LNode
{
Elemtype data;
struct LNode *next;
} Lnode;
#define ELEMSIZE sizeof(Elemtype)
#define NODESIZE sizeof(Lnode)
#define LINKSIZE 100
void InsertLink(Lnode **Link, Elemtype *elem)
{
Lnode *node=*Link;
//Lnode *head=NULL;
if(!node) //If it is an empty link, set elem as the head
{
node=(Lnode *)malloc(NODESIZE);
node->next=NULL;
memcpy(&(node->data),elem,ELEMSIZE);
*Link=node;
}
else
{
while(node)
{
node=node->next;
}
node=(Lnode *)malloc(NODESIZE);
node->next=NULL;
memcpy(&(node->data),elem,ELEMSIZE);
}
// *Link=node;
}
红色部分是不是不对呀,程序总是有问题
...全文
相关推荐
调用形参为二维数组的函数
在C/C++等语言中,处理二维数组时,我们通常会遇到如何通过指针来操作它们的问题,特别是当涉及到函数调用时。本篇将详细讨论如何动态创建指针数组,并将其作为实参传递给形参为二维数组的函数。
浅谈C语言中函数形参为地址类型的定义形式和类型自动转换.pdf
在实际开发中,合理运用地址类型的参数能够大大提高代码的灵活性和可维护性,使程序员能够更加方便地处理复杂的数据结构和动态内存分配等问题。
c代码-C:指针做为形参和返回值
当函数需要返回一个较大的数据结构或一组数据时,返回一个指向这些数据的指针可能更有效率。例如,动态分配内存并返回其地址,或者创建一个结构体数组并返回其首地址。
浅析c语言中指针作函数参数.pdf
在C语言中,指针是极其重要的一个概念,它不仅是数据存储地址的抽象,而且在函数参数传递中扮演着关键角色。指针作函数参数能够让函数直接操作调用方的变量,实现数据的双向交换以及对数据结构如数组进行修改。
函数形参LNode*与LNode*&区别[项目源码]
这种对函数形参的深入理解,对于编写高效且安全的C++代码来说至关重要,尤其是在处理链表和其他复杂数据结构时。程序员通过理解这些底层机制,可以更好地控制内存使用,防止内存泄漏,确保数据的正确传递和处理。


