C Programming - Const - Discussion

Discussion Forum : Const - Point Out Errors (Q.No. 2)
2.
Point out the error in the program (in Turbo-C).
#include<stdio.h>
#define MAX 128

int main()
{
    const int max=128;
    char array[max];
    char string[MAX];
    array[0] = string[0] = 'A';
    printf("%c %c\n", array[0], string[0]);
    return 0;
}
Error: unknown max in declaration/Constant expression required
Error: invalid array string
None of above
No error. It prints A A
Answer: Option
Explanation:

Step 1: A macro named MAX is defined with value 128

Step 2: const int max=128; The constant variable max is declared as an integer data type and it is initialized with value 128.

Step 3: char array[max]; This statement reports an error "constant expression required". Because, we cannot use variable to define the size of array.

To avoid this error, we have to declare the size of an array as static. Eg. char array[10]; or use macro char array[MAX];

Note: The above program will print A A as output in Unix platform.

Discussion:
13 comments Page 1 of 2.

Zeel Modi said:   7 years ago
Option D is correct. I tried to execute it.

Here is my o/p:
A A

--------------------------------.
Process exited after 3.76 seconds with return value 0
Press any key to continue . . .

Siva said:   1 decade ago
No friends here they declare the int type as const. Const can't change and he take only the constant variable. So char type need const.

Raj kumar said:   1 decade ago
In above program if we declare.

int max=128;
char array[max];

Without const then it works or not.

Narendar said:   1 decade ago
Yes it works fine in gcc because it is compiler dependent. What I meant to say is data type range.

Avijit Samanta said:   7 years ago
This program will print A A as output in Windows platform without any error.
(1)

Mustafa said:   1 decade ago
In gcc compiler it is running fine, no warnings and errors.

Dilna vincent said:   10 years ago
Since we declare max as const int it should work.

Mms said:   1 decade ago
Can be build in data type as a variable name?

Jaydip said:   10 years ago
On GCC its provides no error, and prints A A.

Deepthi said:   10 years ago
It works fine no error. It prints A A.


Post your comments here:

Your comments will be displayed after verification.