Я узел shure как конвектировать char **
до char *
в C++.Как преобразовать char ** в char * в C++
void Text(char **Message)
{
char* result = (char*)&Message; // It doesnt work :(
}
Любые подсказки?
Я узел shure как конвектировать char **
до char *
в C++.Как преобразовать char ** в char * в C++
void Text(char **Message)
{
char* result = (char*)&Message; // It doesnt work :(
}
Любые подсказки?
Вот правильный ответ
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
}
Я создал программу, чтобы помочь вам:
#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
.
Привет! Как мы можем получить длину символа ** Сообщение на лету? В основном мне нужно преобразовать весь символ ** Сообщение ... –
Используйте [strlen] (http://www.cplusplus.com/reference/cstring/strlen/), чтобы получить длину строки. – Icemanind
Непонятно, что представляет собой сообщение. Это коллекция 'char *'? Является ли это адресом символа 'char *' для изменения в качестве выходного аргумента? 'strlen' может использоваться для получения длины символа' char * 'с нулевым завершением, но сначала вы должны знать, какие данные вы работаете, на самом деле означает. –
'символ * Результат = * Сообщение;'? –