gpt4 book ai didi

c - 为什么我不能用动态分配的数组覆盖数组(传递给另一个函数)?

转载 作者:行者123 更新时间:2023-11-30 21:28:59 26 4
gpt4 key购买 nike

这是我尝试过的代码:

    void check(char*, int);
int main(){
int len;
char* str="stack over flow";
len=strlen(str);
check(str,len);
getch();
return 0;
}
void check(char* str,int len)
{
char* arr;int i=0;
arr=(char*)malloc(sizeof(char)*len);
arr="over flow stack";
while(arr[i]!='')
{
str[i]=arr[i];//here the error is thrown
i++;
}
puts(str);
}

当我尝试将 arr 的元素打印回 str 时,出现错误。

最佳答案

您首先使用 malloc 分配内存,然后更改该指针以指向 “over flow stack”,然后尝试从 “over flow”复制字符stack” 超过常量字符串 “stack over flow”,它具有未定义的行为,因此您的程序崩溃。

关于c - 为什么我不能用动态分配的数组覆盖数组(传递给另一个函数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35934197/

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