“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,因为您没有复制字符串。
我希望有人能帮助我处理我的 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,因为您没有复制字符串。