void test_memcpy(int *arr, int hi)
{
int arr1[hi];
memcpy(arr1, arr, sizeof(int)*hi);
for(int i=0;i<=hi;i++)
cout<<arr1[i]<<"\t";
}
int arr[] = {2,5,4,1,2,1,3,4,5,6,7,8};
test_memcpy(arr,11); // call test_memcpy function
输出:
2 5 4 1 2 1 3 4 5 6 7 6946568
//而不是在最后一个位置打印8,有一些垃圾值 印刷的 //请帮助理解
答案 0 :(得分:1)
我看到错误:
test_memset(arr);
那应该是
test_memset(arr,12);
和:
for(int i=0;i<=hi;i++)
应该
for(int i=0;i<hi;i++)
从我猜测你在第一个中有11个而在第二个中有错误,因此只复制了11个,但是写出了12个因此得到随机的第12个元素。
对于你的下一个问题,将代码(免费的两行)包含在main函数中并添加库导入以便可编译也是很好的。