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

时间:2017-04-07 19:15:07

标签: c strcpy

我跳了一个人可以用我的C代码帮助我。我收到了这个错误:

params = [3,2,1]
# SELECT * from table where id in (%s,%s,%s)
stmt = 'SELECT * FROM table WHERE id IN ({})'.format(','.join(['%s']*len(params)))
cursor.execute(stmt, tuple(params))

这是我发生错误的代码:

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);
}

1 个答案:

答案 0 :(得分:1)

尝试

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

因为你没有复制字符串而没有strcpy。