Ich habe ein dynamisches Array mit Anfangsgröße implementiert und fügen Sie ein Array von zwei Spalten in so etwas wie {{"aa","bb"},{"cc","dd"},{"ff","gg"}}
hier ist mein code.the Element sieht zu Coorectly in Array speichern, aber ich weiß nicht wie um die Elemente wie ptr_arr[i][j]
zu erhalten.bekommen char-Element wie Array in c
typedef struct {
char **array;
size_t used;
size_t size;
} Array;
void initArray(Array *a, size_t initialSize) {
a->array = (char **)malloc(initialSize * sizeof(char *));
int i;
for (i = 0; i < 2; i++) {
a->array[i] = (char *) malloc(initialSize * sizeof(char *));
}
a->used = 0;
a->size = initialSize;
}
void insertArray(Array *a, char* (*element)[2]) {
if (a->used == a->size) {
a->size *= 2;
a->array = (char **)realloc(a->array, a->size * sizeof(char));
}
a->array[a->used++] = *(*element);
}
int main(int argc, const char * argv[]) {
Array ptr_arr;
initArray(&ptr_arr, 1);
char *b[] = {"85","9u"};
insertArray(&ptr_arr, &b);
printf("%s \n", (ptr_arr.array[0][1])); //this is just i want to use
return 0;
}
'a-> array = (char **) malloc (Urspr * sizeof (char *));' -> 'a-> array = malloc (sizeof * (a -> array) * 2); ' – chux
@chux was ist das problem? ich habe es nicht verstanden. –
Ihr Code 'malloc (initialSize * sizeof (char *))' weist 1 Zeiger zu. 'malloc (sizeof * (a-> array) * 2)' 'ordnet 2 Zeiger zur Verwendung im folgenden' zu (i = 0; i <2; i ++) {' – chux