Messages in this thread | | | Date | Tue, 29 Feb 2000 11:20:25 -0600 | From | Bill Wendling <> | Subject | Re: string-486.h? |
| |
Also sprach Ben Kosse: } > Well the problem is bad 'C' code. It's not the compiler's fault. It's } > just doing what it's told to do. } > } > char str[12]="mystring"; } > } > declares a string on the stack with room for 12 bytes. However it is } > initialized with only 9 (8 characters + the implied \0). So the rest } > of the area has to be zeroed, which the compiler does. } No it doesn't. For all C is required to care about, it could be stored as: } "mystring\0bla" The definition is 12 bytes on the stack, the first nine being } "mystring\0". } Depends on where the char str[12] is placed. If it is global, then it is zeroed cause it's static...If it's an auto, then it can (and probably does) have garbage after the terminating \0.
-- || Bill Wendling wendling@ganymede.isdn.uiuc.edu
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |