c - 如何将通过函数调用传递的字符串分配给c中的变量
问题描述
void Somefunction(char title[]){
struct node *newnode = malloc(sizeof(struct node));
//Assign title to newnode value
newnode->data = ???????????
}
int main()
char *Title[3] = {"my","cow","milk"};
int x;
for(x=0;x<sz;x++){
Somefunction(Title[x]);
}
}
请帮忙,我是c新手。
所以 Title[x] 在这个函数调用中: Somefunction(Title[x]) 携带值: 'my' 例如第一次通过。在函数定义中,如何将“我的”分配给 newnode->data
解决方案
如果你想复制你必须给data
它的地方的字符串。我假设你的结构有一个名为的成员data
,它的char*
.
你可以这样做:
size_t len_of_str = strlen(title);
newnode->data = (char *)malloc(len_of_str + 1);
if (NULL == newnode->data)
{
return (NULL);
}
strncpy(newnode->data, title, len_of_str);
newnode->data[len_of_str] = '\0';
假设您的结构如下所示:
struct node{
char *data;
more members...
};
推荐阅读
- javascript - 执行sql查询并在表格行按下后以模态显示结果
- java - 在 bukkit 中获取 json 文件
- python - Python - 在 DataFrame 中找到一个值并更新它
- javascript - 鼠标移动给出错误的坐标
- python - 在python中创建一个函数来bin数据
- sql - 无法根据一些比较从多个表中获取数据
- python - 如何在 Zipfile.open 进程中进行 json 转储?
- flutter - Flutter 中区分大小写
- c++ - 为什么为一维数组重新分配指向 char 的指针时显示错误但二维数组工作正常?
- c - 我需要将 int 转换为字符串,我在负数和零方面有问题