#include <stdio.h>
#include <stdlib.h>
int main(){
int x = 9, iArr[10], y = 10, *iP;
iP = iArr; // tương đương iP trỏ về iArr[0]
*(iP + 10) = 5; // tương đương iArr[10] -> lỗi;
*(iP - 1) = 0; // tương đương iArr[-1] -> lỗi;
printf("%d %d\n", x, y);
return 0;
}
int main1(){
int x = 9, *iArr, y = 10, *iP;
iArr = (int*)malloc(10 * sizeof(int));
iP = iArr;
*(iP + 10) = 5;
*(iP - 1) = 0;
printf("%d %d\n", x, y);
return 0;
}
Hàm thứ nhất sẽ bị lỗi sau khi kết thúc hàm còn hàm 2 thì không.
Mảng tĩnh và mảng động khác nhau như thế nào ở trường hợp này ?
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?