我想故意得到段错误,但无法得到它。
为什么?
如果我从malloc边界访问内存,那不应该是段错吗?
使用Linux Ubuntu,使用gcc main.c -Wall -Wextra
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char* niz = malloc(sizeof(char)*4);
niz[0] = 'd';
niz[1] = 'i';
niz[2] = 'm';
niz[3] = 'a';
printf("%s\n", niz);
printf("%c\n", niz[20]); //not giving segfault
free(niz);
exit(EXIT_SUCCESS);
}
$迪马
$(换行)