Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημερα!!

Χρειαζομαι βοηθεια με το πως να μετατρεψω μια μεταβλητη pointer to pointer to string σε c-string..

 

Αυτο δηλαδη:

const char *convert( string **imported  )
{
     const char *cstr_imported = *imported -> c_str();

     return cstr_imported;
}

αλλά έχω αυτό το σφάλμα:

error: request for member 'c_str' in '* imported', which is of non-class type 'std::string*'

 

Μήπως μπορείτε να με βοηθήσετε?

Ευχαριστώ!

Δημοσ.

Το error πάντως σου λέει πως το *imported ΔΕΝ ΕΙΝΑΙ string pointer. Κάνε debug και δες τι μεταβλητή είναι το **imported πριν το περάσεις μέσα στην function. 

 

Επίσης, γιατί std::string**; Reference δεν βολεύει; 

Δημοσ.

Δοκίμασε να βάλεις παρενθέσεις στο *imported....

#include <iostream>

const char *convert( std::string **imported  )
{
	return (*imported)->c_str();
}

int main( void )
{
	std::string
		s("Hello"),
		*ps = &s,
		**pps = &ps;

	std::cout << convert(pps) << std::endl;
	return 0;
}

/*
Έξοδος:
Hello
 */
Δημοσ.

Αυτό ήταν το πρόβλημα! Ευχαριστώ πολύ! Το έλυσα!

 

Δοκίμασε να βάλεις παρενθέσεις στο *imported....

#include <iostream>

const char *convert( std::string **imported  )
{
	return (*imported)->c_str();
}

int main( void )
{
	std::string
		s("Hello"),
		*ps = &s,
		**pps = &ps;

	std::cout << convert(pps) << std::endl;
	return 0;
}

/*
Έξοδος:
Hello

Το error πάντως σου λέει πως το *imported ΔΕΝ ΕΙΝΑΙ string pointer. Κάνε debug και δες τι μεταβλητή είναι το **imported πριν το περάσεις μέσα στην function. 

 

Επίσης, γιατί std::string**; Reference δεν βολεύει; 

 

Με reference δεν το προτιμώ.. Μου αρέσει περισσότερο η άλλη μέθοδος!! Ευχαριστώ πάντως!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...