3 ms·
> This article appears part wrong, part obvious and part pointless. Nothing in this article is wrong. What adds to your knowledge of C is that certain operatio
by netheril96 11y ago
> This article appears part wrong, part obvious and part pointless.
Nothing in this article is wrong. What adds to your knowledge of C is that certain operations on C pointers that would make sense if they were just bit pattern are actually undefined behavior. Undefined behavior may lead to subtle bugs due to how compilers do optimizations.
- dave2000 11y agoI don't see how comparing the value of a pointer, the area of memory to which it points having been previously freed, is undefined behaviour. Is there a source in the spec for this?
- belovedeagle 11y agoYes, it's in the article. > I don't see how [. . .] is undefined behaviour. This is a perfectly meaningless sentence. "Undefined behavior" doesn't mean "things which don't make sense in a particular implementation", it literally means behavior not defined by the spec. The spec declines to define the meaning of p==q when p and/or q is a freed pointer. There's nothing to "see" here: it's just not defined.