入侵oracle数据库的一些技巧(11)


      {  //按sizeof(TCHAR)的长度分配100块连续的区域,并把指向TCHAR类型指针的首地址赋予指针变量szTempPass
          szTempPass = (TCHAR *)calloc(100, sizeof(TCHAR));
          ZeroMemory(szTempPass, 100);

          if ( (s = (PassInfo *)malloc(sizeof(PassInfo))) == NULL)
          {
              fprintf(stderr, "malloc failed %d", GetLastError());
              exit(0);
          }

            memset(s->password, '\0', 100);
            fgets(szTempPass, 100, DictFile);
            strncpy(s->password, szTempPass, strlen(szTempPass)-1);
            s->Next =NULL; //删除一个结点
            p->Next = s;//链表指针指向下一个结构地址
            p = s;//下一个结构的数据域赋值

          free(szTempPass);//释放内存空间

      }

      return h;//返回链表的头结点,它存放有第一个结点的首地址,没有数据

}


//创建用户名链表:
NameInfo * Create_Name_link(int NodeNum, FILE * DictFile){ 

      /* read data from password dictionary, init the link */
      TCHAR * szTempName = NULL;
      NameInfo *h, *p, *s; /* *h point to head node, *p point to the pre node,
                                *s point to the current node*/
      int i; /* counter*/

    //分配内存空间在内存的动态存储区中分配一块长度为"sizeof(NameInfo)"字节的连续区域,函数的返回值为该区域(此处为NameInfo结构的首地址)的首地址:                                        :

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1490.html