gpt4 book ai didi

c - malloc 和 strncpy

转载 作者:太空宇宙 更新时间:2023-11-04 07:24:37 26 4
gpt4 key购买 nike

我试图将一个字符串一分为二以传递给两个 child 。第一部分应该是 12 个“0”字符,第二部分应该是 13 个“1”字符。当我执行这段代码时,我没有得到任何这些东西。具体来说,这是输出。左父:00000000000家长权利:0000000000001我不知道为什么,有人可以帮忙吗?

int bit_count(char *passed, int len){
int left = len/2;
int right =(len/2)+(len % 2);
char *lstring = malloc(sizeof(char)*(left+1));
char *rstring = malloc(sizeof(char)*(right+1));
strncpy(lstring, passed, sizeof(char)*12);
strncpy(rstring, passed+left, sizeof(char)*13);
printf("Parent Left: %s\n", lstring);
printf("Parent Right: %s\n", rstring);

最佳答案

如果您不需要strncpy 并且您不确切知道它的作用,请不要使用它。

在您的情况下,这完全是多余的,无论如何,您知道要复制的数组的大小。所以使用memcpy:

memcpy(lstring, passed, left);
lstring[left] = '\0';
memcpy(rstring, passed+left, right);
rstring[right] = '\0';

关于c - malloc 和 strncpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19338327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com