数组中的char指针值

时间:2013-06-26 07:30:35

标签: c pointers

我有以下代码,它使用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);

1 个答案:

答案 0 :(得分:3)

table[i][5+(i/2)] = ptr;错误,因为您尝试分配地址而不是值。

table[i][5+(i/2)] = *ptr;是正确的。它会给出ptr的值。

分段错误是因为i。它指的是一个超出数组边界的地址。