Dynamisk allokeret text array

Tags:    c++

Jeg har brug for et dynamisk tekst array. Hvordan?


Den "statiske" udgave ser således ud:

#define TEXT_LENGTH 21
char textTable[600][TEXT_LENGTH];


Jeg har en idé om, at den "dynamiske" vil se nogenlunde således ud:

#define TEXT_LENGTH 21
int textCount = 600;
char** textTable

Mit problem er så hvordan jeg får "new'et" ( og "delete'et" )textTable?





4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hejsa

En måde at lavet 2 dim array:

int **ptrData;

int main()
{
ptrData = new int *[600]; // alloc 1.dim
for(int i=0;i<600;i++)
{
ptrData = new int[21]; // alloc 2. dim for hver 1. dim
}

// data operationer

ptrData[x][x] = 54; // osv.....


for(int i=0;i<21;i++)
delete ptrData;

delete[] ptrData;
}

Med venlig hilsen
Thomas Vanting




Jeg har brug for et dynamisk tekst array. Hvordan?


Den "statiske" udgave ser således ud:

#define TEXT_LENGTH 21
char textTable[600][TEXT_LENGTH];


Jeg har en idé om, at den "dynamiske" vil se nogenlunde således ud:

#define TEXT_LENGTH 21
int textCount = 600;
char** textTable

Mit problem er så hvordan jeg får "new'et" ( og "delete'et" )textTable?



Ja, så har jeg halvdelen af svaret selv:

textTable = new char* [textCount];
for (int i= 0; i<textCount; i++)
{
textTable = new char[TEXT_LENGTH];
}

-og har jeg ret i, at textTable deletes sådan:

if(textTable)
{
for (int i= 0; i<textCount; i++)
{
if(textTable) delete[] textTable;
}
delete[] textTable;
}






Argh...er lige nødt til at rette lidt.


for(int i=0;i<21;i++)
delete[] ptrData[ i ];

delete[] ptrData;
}




Argh...er lige nødt til at rette lidt.


for(int i=0;i<21;i++)
delete[] ptrData[ i ];

delete[] ptrData;
}


Hovs, ja der gik det vist lige for strækt. Tak for det!




t