我跳了一个人可以用我的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);
}
答案 0 :(得分:1)
尝试
memcpy(tmp, &(SB->jNodes[j]), sizeof(SB->jNodes[0]));
因为你没有复制字符串而没有strcpy。