c - 我尝试连接两个数组 arr[5] 和 brr[5] s.t. "brr"的元素放在 "arr"之后...编译成功但不运行

标签 c arrays

#include <stdio.h>
#include <malloc.h>

main()

{

int arr[5]={1,2,3,4,5};

int brr[5]={6,7,8,9,10};

int *p,*m;

m=&brr[0];

p=&arr[4];

int count=5;

while(count!=0)

    {
    p++;
    *p=*m;
    m++;
    count--;
    }

p=&arr[0];

while(count<=9)

   {

    printf("%d ",*p);
    p++;
    count++;
   }

return 0;

}

最佳答案

您正尝试写入超过数组 arr 的末尾,该数组具有未定义的行为。

相反,您应该分配一个具有足够空间的数组来组合两个数组,然后写入该数组。

int arr[10]={1,2,3,4,5};

另外,请注意 memcpy 已经完成了您想要的操作,尽管我认为这只是一个练习。

#include <stdio.h>
#include <malloc.h>
#include <string.h>

main()
{
    int arr[10]={1,2,3,4,5};
    int brr[5]={6,7,8,9,10};
    memcpy(arr + 5, brr, 5*sizeof(int));
    return 0;
}

关于c - 我尝试连接两个数组 arr[5] 和 brr[5] s.t. "brr"的元素放在 "arr"之后...编译成功但不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464765/

相关文章:

c - allegro 中按键事件的错误

c - 为什么 fread() 在文件读取期间失败?

Javascript:将对象的对象转换为对象数组

c - for循环中的数组,C99

c++ - 错误 : expected unqualified-id befo re '{' token

c - 用 C 语言制作问答游戏

c - C 代码有问题

javascript - JavaScript 中多个数组的笛卡尔积

Java inputstreamreader 解析为 int 然后反转数组并打印为格式化字符串

c - 一道新手C题