c - *pt in int (*pt)[2] 和 pt in int *pt 有什么区别?

标签 c

例如

    int (*pt)[4];
    int target[3][4] = {{1,3,4,6},{2,4,5,8},{3,4,6,7}};
    pt = target;
    *pt = target[0];

为什么是“[错误]无效的数组赋值”

最佳答案

int (*pt)[4]pt 声明为指向数组的指针。

C 不允许分配数组;例如你不能这样做:

int a[4] = {1, 2, 3, 4};
int b[4];
b = a;

如果要复制一个数组,需要使用循环,也可以使用memcpy:

memcpy(pt, target[0], sizeof target[0]);

关于c - *pt in int (*pt)[2] 和 pt in int *pt 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58151924/

相关文章:

c++ - 如何以可读的方式读写 "EVP_PKEY"中包含的公钥和私钥?

c - 将线阵列拆分为单词

c - 如何将双指针字符复制到另一个双指针字符?

c - Windows目录是存放临时文件的地方 - GetTempPath函数

c - 替换 fflush(stdin)

c - 使用 C 将数组写入文件

c++ - 服务器端库 (c/c++) xmlrpc

c - Linux 实时调度优先级(SCHED_FIFO 和 SCHED_RR)的实际使用?

输入大数字时命令终止

c - 试图将参数传递给 ioctl 调用将参数置零