> a->ss1 = (char**) malloc(48); <--- !CRASH!!! ; Trying to allocate space for pointers
Assuming pointers have a particular size, and not using sizeof is the biggest problem here.

BillyTKid's...