c++ error C4700: uninitialized local variable 'num1' used

Started by
1 comment, last by indelvarn 11 years, 4 months ago
can anyone tell me what's the problem here?

c++ error C4700: uninitialized local variable 'num1' used

#include "stdafx.h"
#include <stdio.h>
int main()
{
int num1 = 1;
int num2 = 2;
while (num1 < 101)
{
printf("%d\n",num1);
printf("%d\n",num2);
int num1 = num1 + num2;
int num2 = num1 + 1 + num2;
}
}
Advertisement
you declare and initialise num1 at the beginning. Then on this line:

int num1 = num1 + num2;

You are redeclaring another "num1" that is "shadowing" (hiding) the first one you've declared. At this point the compiler sees the "num1" in the expression as the one you've just declared.

You don't need to declared a new num1, you just need to assign it, so, to fix:

num1=num1+num2;

Or, more to the point:

num1+=num2;

Make sure you read and understand (google for it) variable declaration, scoping and assignment.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni


you declare and initialise num1 at the beginning. Then on this line:

int num1 = num1 + num2;

You are redeclaring another "num1" that is "shadowing" (hiding) the first one you've declared. At this point the compiler sees the "num1" in the expression as the one you've just declared.

You don't need to declared a new num1, you just need to assign it, so, to fix:

num1=num1+num2;

Or, more to the point:

num1+=num2;

Make sure you read and understand (google for it) variable declaration, scoping and assignment.

thanks!

This topic is closed to new replies.

Advertisement