PDAclub.pl - Forum użytkowników technologii mobilnych
Windows Mobile (Classic, Professional, Standard), Windows Phone 6.x oraz 7/8.x/10 => Oprogramowanie PPC => Dla programistów => Wątek zaczęty przez: lemkat w Wrzesień 11, 2005, 20:16:30
-
Witam
Mam takie pytanko poniewaz w zwyklym c++ ( pod dos nt TC++ ) lub C++ Builder ten kod dziala a w embdedded vc++ nie chce:
char *pDynTab;
char *pBuffor;
potem w trakcie wykonywania funkcji tworze ta tablice:
pDynTab = new char[ 100 ]; // tu akurat daje stale 100 ale w kodzie jest to zmienna int;
teraz chce przypisac do tablicy element
pDynTab[ 5 ] = pBuffor;
a kompilator mi sie burzy ze:
D:\programowanie\WindowsCE\ProcessManager\ProcessManager.cpp(301) : error C2440: '=' : cannot convert from 'char *' to 'char'
-
Utworzyles tablice pDynTab, ktora moze przechowac 100 znakow (zmiennych typu char), a probujesz zapisac w niej wskaznik na znak (czyli zmienna typu char *). To nie ma prawa dzialac - i to napisal kompilator. Napisz, co chcesz przechowywac w tablicy pDynTab.
-
Witam, troszke tu zamieszalem ale jak wygrzebie gdzies moje stare kody to wkleje go tu. Ogolnie chodzilo mi o to aby utworzyc dynamicznie tablice lancuchow. Na razie rozwiazalem to tak;
struct StructProc
{
char cName[ 100 ];
};
StructProc *pDynTab;
i w funkcji:
int iCount = 100;
pDynTab = new StructProc[ iCount ];
przypisania poprzez
strcpy(pDynTab[ i ].cNazwa , cBuffor );
delete []pDynTab;
Pozdrawiam
-
strcpy(pDynTab[ i ].cNazwa , cBuffor );
Książkowy przepis na buffer overflow. ;)