동적으로 할당한 메모리를 초과해서 데이터를 입력했는데도 오류가 나지 않습니다. 어떤 부분이 잘못된걸까요?
void push(short**p,int stack,int limit) {
printf("\npush: ");
scanf("%hd", *(p)+stack);
}
void pop(short** p, int stack,int limit) {
printf("\npop: %d\n", *(*p+stack));
*(*(p)+stack) = NULL;
}
void main() {
short* p_data;
int stack = 0, temp, command, limit;
printf("\nSet the limit\n");
scanf("%d", &limit);
p_data = (short*)malloc(sizeof(short) * limit);
while (1) {
printf("\npush or pop (1 or 2)\n");
scanf("%d", &temp);
if (temp == 1) {
push(&p_data, stack, limit);
stack++;
}
if (temp == 2 && stack != 0) {
pop(&p_data, stack-1 , limit);
stack = stack - 1;
}
int i = 0;
for (i = 0; i < stack; i++) {
printf("stack %d: %hd\n", i + 1, *(p_data + i));
}
}
free(p_data);
}