作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[3][3] = {
1,2,3,
4,5,6,
7,8,9
};
int *arry = (int*)malloc(3 * sizeof(int));
*arry = memcpy(arry, arr[1], 3 *sizeof(int));
int t;
for(t = 0 ; t < 3 ; t++)
{
printf("\n");
printf("%d \t", arry[t]);
}
}
正在产生此输出:
7280624
5
6
进程返回 3 (0x3) 执行时间:0.011 s
按任意键继续。
为什么它没有正确复制第一个值?
最佳答案
它正确地复制了第一个值,但是
*arry = memcpy(arry, arr[1], 3 *sizeof(int));
您正在使用 memcpy
的返回值覆盖它。
只要打电话
memcpy(arry, arr[1], 3 *sizeof(int));
或者如果您想检查它,则将返回值分配给不同的变量(毫无意义,因为 memcpy
返回其第一个参数)。
关于c - 如何将二维数组的一部分复制到一维数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15814483/
我是一名优秀的程序员,十分优秀!