我有以下代码,它使用strtok获取一些char标记,并在表中逐个保存这些标记,最后打印这些标记。我的错误在TABLE行中:
error: invalid conversion from 'char* to 'char''
我误解了指针和字符的东西,我不知道如何编写TABLE行((我想要具有以下格式))。我试过像
这样的东西table[i][5+(i/2)] = *ptr;
但我有分段错误。
i = 0;
int offset = 5;
char* ptr;
ptr = strtok(buff,"do something");
char table[1][10];
while (ptr != NULL)
{
if (i == 0)
strcat(machine, ptr);
if (i == 2)
strcat(number, ptr);
if (i == 4)
strcat(hr, ptr);
if (i == 6)
strcat(dw, ptr);
if (i == 8)
strcat(vcc, ptr);
ptr = strtok(NULL,"do something");
table[i][5+(i/2)] = ptr;
i++;
}
printf("Final: %s, %s, %s, %s, %s\n", machine, number, hr, dw, vcc);
答案 0 :(得分:3)
table[i][5+(i/2)] = ptr;
错误,因为您尝试分配地址而不是值。
table[i][5+(i/2)] = *ptr;
是正确的。它会给出ptr
的值。
分段错误是因为i
。它指的是一个超出数组边界的地址。