Portál AbcLinuxu, 13. května 2025 21:47
static const char * const texts_1724[] = { "8000", /* 0: 6 */ ................... "192000", /* 14: 14 */ "IEC958 Input", /* 15: -- */ };Protože některé karty podporují jen některé z těchto frekvencí, potřebuji kód zobecnit, aby se nepracovalo rovnou s tímto statickým polem, ale s polem příslušným dané kartě. Tedy jsem definici tohoto pole přesunul z funkce na hlavní úroveň, do struktury karty přidal novou položku a v inicializaci struktury se snažím jí toto pole přiřadit.
struct snd_ice1712 { ............ struct ice1712_rates_info { .... char * * texts; /* list of rate strings */ } rates_info; }Přiřazení v inicializaci provádím
ice->rates_info.texts = texts_1724;Bohužel toto hodí při kompilaci
warning: assignment from incompatible pointer type
. Zkoušel sem všechny možné varianty definice položky texts, různě odstraňovat consty u definice statického pole, ale nedokázal jsem warning (někdy rovnou error) odstranit. Má znalost C pro gcc je poměrně chatrná. Velice děkuji za radu či doporučení.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.