91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用C++多級指針存儲海量qq號和密碼

發布時間:2021-08-09 14:00:36 來源:億速云 閱讀:163 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“如何使用C++多級指針存儲海量qq號和密碼”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用C++多級指針存儲海量qq號和密碼”這篇文章吧。

指針是c++中很重要的一部分內容。

可以認為,指針是C++這把寶劍最鋒利的部分,當然,如果你使用不當,也會傷到自己的

本篇博客,將嘗試用11級指針這個結構來存儲海量的QQ號和密碼。首先,鄭重聲明,我沒有海量的QQ號和密碼,只是想用這種結構來解決這個不存在的問題,不存在只是對我而言的,據稱,騰訊內部的一些代碼對QQ的處理就是用的這種結構

何為11級指針,其實,就是在指針前面加了11個*,加一個*就是1級指針,加兩個*就是二級指針

char *********** QQptr = NULL;

指針和數組有著扯不清的關系,這個11級指針,你可以理解為11維度的數組,平日里見得最多的恐怕也就是二維數組了,11維,只能腦補了。如果QQ號長度不夠10位,則在前面補0,那么這個QQ號的10位數字就可以用來做數組的下角標了,最后的那個維度我們用來存儲密碼。

坦率的講,我腦子里也對這個模型很是模糊,無法建立起一個有效的概念,所以,還是直接上代碼吧,或許代碼比語言有更好的解釋效果:

#include <iostream> 
using namespace std; 
 
#define POINTER_SIZE 10 
 
 
int CharToInt(char ch) 
{ 
  return ch - '0'; 
} 
char *********** QQptr = NULL; 
void addQQ(char *qq,char* pass) 
{ 
  if(NULL==qq || NULL==pass) 
  { 
    return ; 
  } 
 
  if(strlen(qq)!=10) 
  { 
    return; 
  } 
 
  int index[10]; 
  for(int i =0;i<10;i++) 
  { 
    index[i] = CharToInt(qq[i]); 
  } 
 
  if(QQptr[index[0]]==NULL) 
  { 
    QQptr[index[0]] = (char **********)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]]==NULL) 
  { 
    QQptr[index[0]][index[1]] = (char *********)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]] = (char ********)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]] = (char *******)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]][index[4]] = (char ******)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]] = (char *****)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]] = (char ****)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]] = (char ****)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]] = (char ***)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]] = (char **)malloc(sizeof(char*)* POINTER_SIZE); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]]==NULL) 
  { 
    QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]] = (char *)malloc(sizeof(char*)* 1024); 
    memset(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]], 0, sizeof(char*)* POINTER_SIZE);//清零 
  } 
 
  strcpy(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]],pass); 
} 
 
bool isExist(char *qq) 
{ 
  if(NULL==qq) 
  { 
    return NULL ; 
  } 
 
  if(strlen(qq)!=10) 
  { 
    return NULL; 
  } 
 
  int index[10]; 
  for(int i =0;i<10;i++) 
  { 
    index[i] = CharToInt(qq[i]); 
  } 
 
  if(QQptr[index[0]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]]==NULL) 
  { 
    return false; 
  } 
 
  if(QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]]==NULL) 
  { 
    return false; 
  } 
  return true; 
} 
char* getPass(char* qq) 
{ 
  if(NULL==qq) 
  { 
    return NULL ; 
  } 
 
  if(strlen(qq)!=10) 
  { 
    return NULL; 
  } 
 
  if(!isExist(qq)) 
  { 
    return NULL; 
  } 
 
  int index[10]; 
  for(int i =0;i<10;i++) 
  { 
    index[i] = CharToInt(qq[i]); 
  } 
  return QQptr[index[0]][index[1]][index[2]][index[3]][index[4]][index[5]][index[6]][index[7]][index[8]][index[9]]; 
} 
int main() 
{ 
   
  QQptr = (char ***********)malloc(sizeof(char*)* POINTER_SIZE); 
  memset(QQptr, 0, sizeof(char*)* POINTER_SIZE);//清零 
   
  char *qq = "0381084992"; 
  char *pass = "314krtqw"; 
   
  addQQ(qq,pass); 
  cout<<getPass(qq)<<endl; 
  return 0; 
}

以上是“如何使用C++多級指針存儲海量qq號和密碼”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

济阳县| 东辽县| 清新县| 土默特左旗| 宁武县| 高碑店市| 商洛市| 河间市| 柳州市| 芜湖市| 英吉沙县| 郯城县| 珲春市| 布尔津县| 黄梅县| 临西县| 杨浦区| 疏附县| 浦江县| 龙川县| 色达县| 隆德县| 大化| 古交市| 青龙| 滨海县| 保定市| 玉门市| 泾川县| 红安县| 漳浦县| 鹤岗市| 敖汉旗| 成安县| 宣威市| 辉县市| 安吉县| 西乌| 惠东县| 肇东市| 咸宁市|