2015-12-05 10 views
5

char* में कनवर्ट कर रहा स्ट्रिंग C#परिवर्तित चार [] सरणी चार करने के लिए **

string p = "qwerty"; 
fixed(char* s = p) 

में आसान है लेकिन किसी को भी कैसे सी # में char** में char[,] कन्वर्ट करने के लिए पता है?

+4

अधिकांश भाषाओं में 2 आयामी सरणी ऐसे तरीके से संग्रहित नहीं होती हैं जो char ** के साथ संगत है। मुझे सी # के कार्यान्वयन के बारे में निश्चित नहीं है, लेकिन मुझे संदेह होगा कि 2 डी सरणी सिर्फ 'x * y' की एक संगत ब्लॉक के रूप में संग्रहीत है, जो एक char * के बराबर होगी। –

+0

@ बॉबी सैकैमनो आप कमाल हैं: डी मुझे char [,] p = new char [2, 2] का उपयोग करना पड़ा; पी [0, 0] = '1'; पी [0, 1] = '2'; पी [1, 0] = '3'; पी [1, 1] = '4'; निश्चित (char * s = p) और यह काम करता है। – alokkoolol123

+0

@bobby आप रात को इसे उत्तर के रूप में जोड़ना चाहते हैं। अन्यथा ओपी ऐसा कर सकता था। –

उत्तर

1

नीचे दिया गया कोड दिखाता है कि char[,] सरणी को एक सूचक में कैसे परिवर्तित करें। यह भी दर्शाता है कि सरणी में वर्ण कैसे लिखा जा सकता है और सूचक के माध्यम से पुनर्प्राप्त किया जा सकता है। आप पॉइंटर का उपयोग करके भी लिख सकते हैं और सरणी का उपयोग करके पढ़ सकते हैं। यह वही है, क्योंकि यह एक ही डेटा का संदर्भ देता है।

  char[,] twoD = new char[2, 2]; 

      // Store characters in a two-dimensional array 
      twoD[0, 0] = 'a'; 
      twoD[0, 1] = 'b'; 
      twoD[1, 0] = 'c'; 
      twoD[1, 1] = 'd'; 

      // Convert to pointer 
      fixed (char* ptr = twoD) 
      { 
       // Access characters throught the pointer 
       char ch0 = ptr[0]; // gets the character 'a' 
       char ch1 = ptr[1]; // gets the character 'b' 
       char ch2 = ptr[2]; // gets the character 'c' 
       char ch3 = ptr[3]; // gets the character 'd' 
      } 
संबंधित मुद्दे