0

Null is not declared?

My code:

// Include necessary libraries #include <cstdlib> // Exits #include <iostream> // I/O #include <cstring> // String functions using namespace std; int main(int argc, char *argv[]) { //Declare local Constants and Variables const char SOKINP[19] = "23456789TtJjQqKkAa"; // Valid Input Characters char acCards [5]; // Array to hold up to five cards (user input) bool bErr; // Loop on Error (Calculated) int i, // Loop variable (Calculated) iNbrCrd, // Number of Cards 2-5 (user input) iNAces, // Number of Aces (Calculated) iTS; // Total Score (Calculated) ... for (i=0;i<iNbrCrd;i++){ do { cout << "Enter Card #" << i << " (2-9,t,j,q,k or a) >"; cin >> acCards[i]; cout << endl; bErr = (strchr(SOKINP, acCards[i]) == null) ? true : false; // *ERROR* } while (bErr); } return EXIT_SUCCESS; } 

[Error] 'null' was not declared in this scope

How do I declare 'null'? I tried including several other libraries. I'm using Dev C++ v5.4.2

Thanks, ~d

13
  • 5
    Use NULL or nullptr. Commented Sep 29, 2013 at 4:41
  • 1
    @ta.speot.is: You should say : Use nullptr (or NULL). The order emphasizes and the emphasise matters. Commented Sep 29, 2013 at 4:46
  • 4
    @ta.speot.is In this case, you should say: "don't use Dev-C++ but a good C++ compiler, and use nullptr". Commented Sep 29, 2013 at 4:51
  • 1
    @CareyGregory: this topic gives lots of such example. See every answer. Commented Sep 29, 2013 at 5:03
  • 1
    @Nawaz +1. The overloading example is compelling. Commented Sep 29, 2013 at 5:10

2 Answers 2

6

Its not null. It's NULL in all caps. If writing NULL does not work, you can define it yourself by using

#define NULL 0 
Sign up to request clarification or add additional context in comments.

2 Comments

@ValekHalfHeart You will get type mismatch warnings exactly when you define it as (void *)0. In C and C++, 0 is a valid literal for null pointers of any type, but (void *)0 only works with pointers to void, due to strict strong typing in C++. Thus, (void *)0 is safer in C than 0, but it's wrong in C++.
Noob mistake. Doh! Thank you everyone, capitalizing it was the answer.
3

Use NULL instead of Null.

If you are using it to initialize a pointer and you are using C++11, use nullptr.

Although NULL works for assigning the pointers(even though NULL is not a pointer type but is integer), you may face problems in the below case:

void func(int n); void func(char *s); func( NULL ); // guess which function gets called? 

Refer to THIS for more details

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.