Em chào anh chị
Em vừa mới học về cấp phát bộ nhớ trong c, có một số chỗ chưa hiểu rất mong được anh chị giải đáp ạ.
Em có 1 chương trình như này:
#include<stdio.h>
#include<stdlib.h>
int main(){
int* p ;
p = (int*)malloc(5 * sizeof(int));
for(int i = 0; i < 15; i++) {
p[i] = i;
printf("%d ", p[i]);
}
return 0;
}
Em không hiểu chỗ sao em cấp phát 5 ô nhớ để lưu trữ 5 số nguyên, nhưng trong vòng for kia em đã lưu trữ được 15 số và chương trình vẫn chạy bình thường không thấy báo lỗi gì ạ!
Có cách nào để em cấp phát n ô nhớ và khi em nhập quá n ô nhớ đó thì chương trình bị lỗi or báo lỗi ngay không ạ.
Em cảm ơn anh chị.