【发布时间】:2021-04-05 03:20:18
【问题描述】:
这是我的代码
char function(char *dst)
{
int i;
char *arr;
i = 0;
while(dst[i] != '\0')
{
arr[i] = dst[i];
i++;
}
dst[i] != '\0'
return(arr);
}
int main(void)
{
char a[] ="asdf"
printf("%s", function(a);
}
我想将*dst 复制到空*arr,但我的代码不起作用。
我无法理解。
如何在 C(ex_strcpy, memspy....) 中复制没有内部函数的数组
谢谢
【问题讨论】:
-
我不明白你认为“内部功能”是什么意思,也不明白你为什么要避免它们。无论如何,您用于复制的任何功能都无法帮助您,因为问题是您没有正确理解底层内存中发生的事情。您不能随意选择某个地方来复制字符串to。你必须分配内存。
-
@JB P 提示:当
arr[i]第一次被调用时,指针arr的值是多少? -
你的代码不会编译,除非你修复这个
char a[] ="asdf" -
char *arr;未分配arr[i] = dst[i]将会大爆炸