20 lines
		
	
	
		
			675 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			675 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
int main(int argc, const char *argv[])
 | 
						|
{
 | 
						|
    // The two initializations below are equivalent
 | 
						|
    // String literals are converted into 0-terminated char arrays.
 | 
						|
    char word[] = "Hi";
 | 
						|
    char second_word[] = {'H', 'i', '\0'};
 | 
						|
 | 
						|
    // Lets see if the last byte is actually a null byte:
 | 
						|
    printf("%x\n", word[2]);
 | 
						|
    printf("%x\n", second_word[2]);
 | 
						|
 | 
						|
    // Standard library functions such as printf relay on the null-termination
 | 
						|
    char faulty[] = {'H', 'e', 'l', 'l', 'o'};
 | 
						|
    // This might segfault
 | 
						|
    printf("%s\n", faulty);
 | 
						|
    // TODO: fix the char array definiton to avoid our programm segfaulting.
 | 
						|
    // Why do we get a segmentation fault?
 | 
						|
}
 |