c语言char数组用多一位吗,如何在C中传递一个char数组?

我有这个基本的链表结构:

struct node

{

char *name;

float salary;

struct node *nextNode;

};

struct list

{

struct node *firstNode;

};这是我的insert功能:

void insert(struct list *pList, char *newName, float newSalary)

{

struct node *newNode;

newNode = (struct node *)malloc(sizeof(struct node));

newNode->salary = newSalary;

newNode->name = newName;

if (pList->firstNode == NULL)

{

pList->firstNode = newNode;

newNode->nextNode = NULL;

}

else

{

struct node *pos = pList->firstNode;

for(; pos->nextNode; pos = pos->nextNode);

pos->nextNode = newNode;

newNode->nextNode = NULL;

}

}这是我的main():

int main(void)

{

struct list lst;

struct list *plst = &lst;

createList(plst); //initializes the list

char name1[] = "John";

char name2[] = "Thomas";

char name3[] = "Albert";

insert(plst, name1, 1000);

insert(plst, name2, 2000);

insert(plst, name3, 3000);

}除了char数组的传输之外,一切都很好。我认为传递char数组的最好方法是将指针传递给char数组中的第一个char,但我看不到我做错了什么。

另外,最好先创建一个新的node,然后将一个指向这个node的指针传递给insert函数?它是相似的,但也许更可接受?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值