Dynamic variable naming is not something you can do at runtime. There are preprocessors that can do this for you but I highly advise not using that method.
It sounds like you need to restructure your code as having 36 different variables isn’t a good thing. What you should do is something like the following:
for (int32 c = 0; c < 36; ++c)
BuildZonesInfo NewBuildZonesInfo(c, FVector(), FVector(), FVector());
c is the ID, and FVector() represents an arbitrary FVector that can come from either a method parameter, method return value, or whatever. This way you can have any arbitrary number of structs and you can access any one of them by searching the array for the element with the correct ID.