Well for starters you need to allocate space to a.
When that code runs, a points to some space in memory that you probably don't own.
When you try to access it (actually when you try to access a + 1233245613) you're going to some space in memory you definetly don't own, and that is a no-no and will cause a crash.
#include <stdio.h>
#include <stdint.h>
int main(){
uint32_t *a;
uint32_t idx=1233245613;
a = malloc(sizeof(unit32_t) * (idx+1));//+1 cause remember, arrays are 0-based
if(a == NULL)
{
printf("Array could not be allocated");
return 1;
}
a[idx]=1233;
free(a);//good practice to avoid memory leaks
return 0;
}
But even that doesn't solve the problem that you're using a GIANT array. Your standard setup (desktop or even most servers) will choke trying to allocate 4.6GB of memory. So unless you've taken that into account you're probably going to need to step back and rethink what you're trying to do, and how.