Cześć. Mam problem z alokacja dynamicznej tablicy stringów w c. Chce zadeklarowac 10 napisow string po 24 litery.
char (*name)[24];
name= (char**)malloc(sizeof(char*)*10);
Umiałby ktoś powiedzieć, jak to zrobić poprawnie?
Dziękuje za bardzo pomoc.
Możliwości jest kilka, wersja z oszczędnością pamięci (allokowanie jednego kawałka pamięci):
char ** allocCharTable(int rows, int columns) {
int alignedColumns = ((columns+3)/4)*4;
char ** result = (char**)alloc(sizeof(char*)*rows + sizeof(char)*alignedColumns);
if (result) {
int i;
for (i=0; i<rows; ++i) {
result[i] = ((char*)(result+rows))+alignedColumns*i;
}
}
return result;
}
char **name = allocCharTable(stringsCount, maxStringLength+1);