...
main() {
   char **src_ip[10];
   char **dest_ip[10];
   char **lat[10];
   char *ip[20];
   while{
      //Read file
      //fgets();
      src_ip[j] = &data[0];
      dest_ip[j] = &data[1];
      lat[j] = &data[2];
      int idx;
      int addip;
      for(idx=0; idx<20; idx++)
      {
          addip = 0;
          //Check to see if the IP address is already in the array.
          if ((strcmp(*(src_ip[j]),  ip[idx]) == 0) ||
              (strcmp(*(dest_ip[j]), ip[idx]) == 0))
          {
              addip=1;
              break;
          }
          //If the IP address was already found then addip would equal 1.
          if (!addip){
              printf("new node: %s",*(ip[idx]));
          }
          else
              printf("Exist");
      }
   }
   j++;
}
2つの1d配列(arraysrc_ip[j]とdest_ip[j]-)のchar文字列を比較し、1つの配列ip[idx]に挿入します。たとえば、を探すとip[1]、に移動します。これは、とを個別に調べるのではなく、src_ip[1]1つの配列のみを参照していることを意味します。ip[idx]src_ipdest_ip
コードに問題があるはずです-多分私は何かを省略しましたか?