c - memcpy() 通过引用而不复制?

标签 c arrays memcpy

<分区>

上下文

正在学习 memcpy。 是的,它可以工作,但如果我们只保留对我们感兴趣的数组子部分的引用而根本没有副本,那就太好了。

char a[] = "hello";
char b[20];
memcpy(b,a,strlen(a)-1)

问题

我们可以做同样的事情而根本没有副本,只是指针运算吗?

printf("my array is %s\n",a..a+2)

例如?

重点不仅是 printf,而且是代码中任何位置的任何引用,通过指向开始和结束的指针。 a..a+2(想想套接字,函数参数..)

对我来说,复制切片有点奇怪,因为它应该是对父数组的引用。

最佳答案

您可以在 printf 中指定您的 %s 的长度以仅显示您感兴趣的部分:

printf("我的数组是 %.2s\n", a);

关于c - memcpy() 通过引用而不复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077193/

相关文章:

c - 卡住时间以获得相同的随机结果

c - 动态分配内存有必要用new吗?

c - 帮助使用 memcpy C 在缓冲区之间进行复制

c++ - 警告 : comparison of distinct pointer types

c - 如何判断 fd 是指伪终端的内部还是外部?

java - 如何检查char数组中是否存在特定字符序列

c++ - 使用 memcpy 移动非 POD C++ 对象是否总是会调用未定义的行为?

c - memcpy,然后printf,调用stat(),写入缓冲区;

c - 如何在内核中记录大量数据

java - 字符串数组中抛出类转换异常