将char数组复制到C中的char *

问题描述 投票:0回答:2

我有一个char数组,需要在一个函数中定义并返回一个char指针,所以我定义了MAX,这是我的char数组可以根据我的工作而定的最大大小,在我添加它的一部分后,我想复制它到char指针,所以我可以返回它。数组中已满部分的大小是i,我用此大小进行了malloc的分配,然后我做了memcpy仅复制了我想要的部分(strcpy也复制了ampty字段),但它仍然将结果放入了更多内容奇怪的东西,我该如何摆脱呢?

代码:

char* result = (char*)malloc(i*sizeof(char));

if (result == NULL)
    free(result);

memcpy(result, temp, i);

printf("%s", result);
return result;

printf的结果:

ccbcc²²²²U┤

而结果应仅为“ ccbcc”。

c arrays pointers char memcpy
2个回答
1
投票

而不是像这样打印:printf("%s", result);


0
投票

由于每个字符串都应以'\ 0'结尾。分配并检查其指针是否为空后,应使用memset函数将每个字符设置为0。

© www.soinside.com 2019 - 2024. All rights reserved.