c++ - String Printer problems: no known conversion for argument X from ‘char (*)[xx]’ to ‘char**’ -
if there 1 thing hate c++ pointers. checked other thread , still not make work. code pretty simple, passing string of character in parameter, want pass in reference modify content of string. don't want use std classes. here code:
the function declared this:
public: static void bitfield_to_strfield ( s_enhancedsqlobject_strfield hash[], char **str, int bitfield ); i trying call function this:
enhancedsqlobject::bitfield_to_strfield ( strfld_elemental_property, &p_resistance_str, p_resistance ); the string declared as:
private: char p_resistance_str [ enhancedsqlobject_strfield_len ]; i following error
no known conversion argument 2 ‘char (*)[94]’ ‘char**’ according thread
there seems sort of implicit conversion problem. tried creating temporary variable before passing in parameter , still not work.
char **tmptr = &p_resistance_str; gives me
cannot convert ‘char (*)[94]’ ‘char**’ in initialization the reason if return value string, return me null pointer unless dynamically allocate string, return string, destroy string.
else possible declare parameter as:
char *[] str since should using fixed width strings.
there no need pass address of string if want change elements in function. enough declare parameter like
char *str and use corresponding argument like
p_resistance_str as error string defined like
char p_resistance_str [ enhancedsqlobject_strfield_len ]; so pointer string have type
char ( * ) [ enhancedsqlobject_strfield_len ]; of course not same char **.
Comments
Post a Comment