“strcpy”的参数 2 的类型不兼容

incompatible type for argument 2 of ‘strcpy’

我希望有人能帮助我处理我的 C 代码。我收到此错误:

error: incompatible type for argument 2 of ‘strcpy’
     strcpy(tmp, (SB->jNodes[j]));

这是我的错误发生位置的代码:

for (int j = 0; j < 20; j++) {
    iNode *tmp = malloc(sizeof(iNode));
    strcpy(tmp, (SB->jNodes[j]));
    if(tmp->size == -1) {
        iNode *oldRoot = SB->root;
        iNode *newShadowRoot;
        strcpy(newShadowRoot, oldRoot);
        strcpy(tmp, newShadowRoot);
        strcopy(SB->jNodes[j], tmp);
        break;
    }
    free(tmp);
}

这是我的数据结构:

typedef struct iNode
{
    int mode;
    int id;
    int size;
    int pointers[NUM_POINTERS];
} iNode;


typedef struct superBlock
{
    int magic_number;
    int block_size;
    int num_blocks;
    int num_inodes;
    iNode *root;
    iNode jNodes[20];
} superBlock;

尝试

memcpy(tmp, &(SB->jNodes[j]), sizeof(SB->jNodes[0]));

不是 strcpy,因为您没有复制字符串。