2016-01-29 3 views

ответ

0

Вот правильный ответ

int main() 
{ 
    char var = 'A'; 
    char *ptr; 
    char **pptr; 

    // take the address of var 
    ptr = &var; 

    // take the address of ptr using address of operator & 
    pptr = &ptr; 

    // take the value using pptr 
    cout << "Value of var :" << var << endl; 
    cout << "Value available at *ptr :" << *ptr << endl; 
    cout << "Value available at **pptr :" << **pptr << endl; 

    Text(pptr); 

    return 0; 
} 

void Text(char **Message) 
{ 
    char *msg = *Message; 
    Print(msg); 
} 

void Print(char * data) 
{ 
cout << "char is :" << *data << endl; // It gives A 

} 
1

Я создал программу, чтобы помочь вам:

#include <iostream> 

using namespace std; 

void Text(char **Message, int length) 
{ 
    while (length > 0) { 
     char* result = *(Message++); 
     length--; 

     cout << result << endl; 
    } 
} 

void main() 
{ 
    char *names[] = { 
     "John", "Mona", 
     "Lisa", "Frank" 
    }; 

    Text(names, 4); 
} 

Для разыменования указателя, вам только нужно использовать *Message.

+0

Привет! Как мы можем получить длину символа ** Сообщение на лету? В основном мне нужно преобразовать весь символ ** Сообщение ... –

+0

Используйте [strlen] (http://www.cplusplus.com/reference/cstring/strlen/), чтобы получить длину строки. – Icemanind

+0

Непонятно, что представляет собой сообщение. Это коллекция 'char *'? Является ли это адресом символа 'char *' для изменения в качестве выходного аргумента? 'strlen' может использоваться для получения длины символа' char * 'с нулевым завершением, но сначала вы должны знать, какие данные вы работаете, на самом деле означает. –

Смежные вопросы