adding strings in the list

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LENGTH 100

typedef struct {
    char str[MAX_LENGTH];
} String;

typedef struct {
    String *strings;
    int size;
    int capacity;
} StringList;

void initStringList(StringList *list) {
    list->strings = (String )malloc(sizeof(String)  10);
    list->size = 0;
    list->capacity = 10;
}

void resizeList(StringList *list) {
    list->capacity *= 2;
    list->strings = (String )realloc(list->strings, sizeof(String)  list->capacity);
}

void addString(StringList list, const char newStr) {
    if (list->size >= list->capacity) {
        resizeList(list);
    }
    strcpy(list->strings[list->size].str, newStr);
    list->size++;
}

int main() {
    StringList myList;
    initStringList(&myList);

    addString(&myList, "Hello");
    addString(&myList, "World");

    for (int i = 0; i < myList.size; i++) {
        printf("%s ", myList.strings[i].str);
    }

    free(myList.strings);

    return 0;
}