Is it guaranteed by the C standard that, given type_t* x = NULL; type_t* y = NULL; we always have x > y evaluating as false? I ask because of the conversation in initial or terminal malloc buffer possible? from which it seems that one should be careful with pointer comparison, and only compare when one is dealing with pointers to elements of the same array, loosely speaking. However, it is convenient to have x > y evaluating as false guaranteed, because I want a struct which is an stack-ish array having fields for the first and post-last elements, and if this array still has 0 elements, it is convenient to set these fields to be NULL, and it is convenient to still allow for for looping over elements of the array, without checking explicitly whether the array has 0 elements or more, so such a comparison is handy...
C: NULL > NULL always false?
111 Views Asked by Sasha At
1
There are 1 best solutions below
Related Questions in C
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in POINTERS
- What does: "char *argv[]" mean?
- Memory allocated for pointer to string literals
- change the value of double pointer with indirection(dereference) operator cause segmentation fault
- Unexpected result when assigning and printing pointer value of two-dimensional array with its name
- The character array data changes when I use it inside for loop. I do not understand why does it change, the data ")" becomes "("
- char * gives garbage value when pointing to a variable of a function in C
- What is correct way to copy struct instance with fields in Go?
- PHP FFI: How to pass PHP class object to C++
- How to make a single slider with three pointer
- rac dangling pointer crash。
- Is casting "pointer to array of type" to "pointer to type" defined?
- C++: How to implement a pointer to another class as a member?
- What is the purpose of (int *) p here?
- Initialize a structure pointer to NULL, then try to change its members
- Could an unitialized pointer be a NULL pointer?
Related Questions in STANDARDS
- Does the qsort() function provide performance guarantees?
- Are all Oracle alert log errors 5 Digits long?
- Are these three default constructors equivalent in C++?
- Concept vs. Typename Parameter in Template Template
- Why does std::memory_order_acq_rel always trigger warnings in C++11?
- I am trying create standard logic app with workflows in it using arm template
- in my date column some rows i have 10/12/2007 and in some rows 10-12-2007 now i want to transfer the date into 2007-12-10 in big query
- Why can't C++ using-declaration expose a protected member of base as a public member of derived?
- Is `int(int) const` a valid function type in C++23?
- Why doesn't std::source_location provide lengths to avoid performance penalty in C++20?
- Why isn't it an error if the arguments are more than required in std::format?
- How much of the C++ standard library requires compiler support?
- How to ensure that the input of a function is within a list of options?
- Is it safe to use fmax for integer types in C?
- Graphql date range as input field
Related Questions in NULL-POINTER
- Nested strtok() calls to tokenize given string does not work as expected
- Why isn't the keyword false an integer constant expression in gcc C23?
- "Properly" dereferencing pointer to address zero in RISC-V
- C: NULL > NULL always false?
- Is there an equivalent of __attribute__((nonnull)) in C23?
- File pointer null in c
- Defining a Macro having struct argument
- Dereferencing null pointer warning and code run stuck infinitely
- Android SDK emulator: crasher strlen-NULL
- Is every null pointer constant a null pointer?
- For loop segmentation fault
- cpp, "\0" == NULL returns false? How to figure it is null ptr or not?
- Why do I get null?
- Is adding 0 to a null pointer UB?
- Why am I getting an "a.exe has stopped working" error on Visual Studio Code for my linked list program?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Surprisingly, in C it appears to cause undefined behavior. Only
==and!=can work with null pointers. The workaround is to cast the pointers touintptr_tand compare the results.C17 6.5.8 Relational operators /5
(bold mine)
This is unlike C++, where there's a clause explicitly saying that
<,<=,>,>=are consistent with==,!=:[expr#rel]/5