Question: This question HAS had to be asked before, so it kills me to ask it again, but I can't find it for all of my google and searching stackoverflow.

I'm porting a bunch of linux code to windows, and a good chunk of it makes the assumption that everything is automatically initialized to zero or null. 

```
int whatever;
char* something;

```

...and then immediately doing something that may leave 'something' null, and testing against 'something'

```
if(something == NULL)
{
.......
}

```

I would REALLY like not to have to go back throughout this code and say:

```
int whatever = 0;
char* something = NULL;

```

Even though that is the proper way to deal with it. It's just very time consuming.

Otherwise, I declare a variable, and it's initialized to something crazy if I don't set it myself.

Answer: 
This option doesn't exist in MSVC, and honestly, whoever coded your application made a big mistake. That code is not portable, as C/C++ say that uninitialized variables have an undefined value. I suggest setting the "treat warnings as errors" option and recompiling; MSVC *should* give you a warning every time a variable is used without being initialized.
Interestingly, MSVC now *does* have the ability to do this. The Microsoft Security team wrote a blog post about it [here](https://msrc-blog.microsoft.com/2020/05/13/solving-uninitialized-stack-memory-on-windows/), and there's a CppCon talk [here](https://www.youtube.com/watch?v=rQWjF8NvqAU).

Unfortunately, it doesn't seem like this option is exposed to the public. [This page](https://lectem.github.io/msvc/reverse-engineering/build/2019/01/21/MSVC-hidden-flags.html) lists a bunch of 'hidden MSVC flags', and it includes an option called `-initall`, so that might be it.