配列を配列にコピーする際に問題があります。印刷 file1[i] が機能します。file1[1] は一連の MAC アドレスで構成されます。
temp1、temp2、および save_MAC を印刷すると、そこには何も表示されません。理由を知っている人はいますか?
char file1[MAX_MAC_ADD][BIG_NUM];
char save_MAC[MAX_MAC_ADD][BIG_NUM];
int unique_MAC = 0;
for (int i = 0; i < num_MAC; ++i)
{
printf("file1[%d]='%s'\n", i, file1[i]);
}
printf("\n\n");
printf("-------------\n");
char temp1[16];
char temp2[16];
for(int i= 0; i <17; i++)
{
temp1[i] = file1[1][i];
}
for(int i = 0; i < unique_MAC+1; i++)
{
for(int j = 0; j <17; j++)
{
temp2[j] = save_MAC[i][j];
}
}
//if not the same
if(strcmp(temp1, temp2) != 0)
{
//copy address into save_MAC
strcpy(save_MAC[unique_MAC], temp1);
unique_MAC++;
}
for (int i = 0; i <1; ++i) //try to print save_MAC[0] first
{
printf("save_MAC[%d]='%s'\n", i, save_MAC[i]);
}
printf("\n\n");
printf("temp1:%s\n", temp1);
printf("temp2:%s\n", temp2);