dynamiczna tablica

  • 3 Odpowiedzi
  • 1074 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline lemkat

  • ***
  • 257
  • Płeć: Mężczyzna
    • http://www.lemkat.webd.pl
  • Sprzęt: HTC HD2
dynamiczna tablica
« dnia: 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'

*

Offline timokie

  • ****
  • 610
  • Sprzęt: Loox C550
dynamiczna tablica
« Odpowiedź #1 dnia: Wrzesień 11, 2005, 20:44:16 »
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.

*

Offline lemkat

  • ***
  • 257
  • Płeć: Mężczyzna
    • http://www.lemkat.webd.pl
  • Sprzęt: HTC HD2
dynamiczna tablica
« Odpowiedź #2 dnia: Wrzesień 11, 2005, 21:05:57 »
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

*

Offline MacBirdie

  • *****
  • 1943
  • Płeć: Mężczyzna
  • I znów Poznań ;)
    • macbirdie.net
  • Sprzęt: iPhone 4 16GB | iPad 3G 64GB | iPhone 3G 8GB
dynamiczna tablica
« Odpowiedź #3 dnia: Wrzesień 11, 2005, 22:26:36 »
Cytat: lemkat
strcpy(pDynTab[ i ].cNazwa , cBuffor );
Książkowy przepis na buffer overflow. ;)