C语言 通过超过数组的限制来重新分配数组的大小



我无法解决问题。该程序必须根据用户的意愿增加数组的大小。但是,它会跳过条件并开始显示数组本身。

int main() {
int *ptr;
int limit;
int sum = 0;
int ans;
printf("enter the limit of the arrayn");
scanf_s("%d", &limit);
ptr = (int *)malloc(limit * sizeof(int));
for (int i = 0; i < limit; i++) {
printf("enter element %d : ", i + 1);
scanf_s("%d", (ptr + i));
if (i = limit) {
printf("do you want to stop entering?n");
printf("tt1t0n");
if (scanf_s("%d", &ans) == '1') {
break;
} else
if (scanf_s("%d", &ans) == '0') {
limit += 5;
ptr = (int *)realloc(ptr, limit * sizeof(int));
printf("memory re-allocation is completed succesfully!n");
}
}
}
for (int i = 0; i < limit; i++) {
printf("nthis is your %d. element : %dn", i + 1, *(ptr + i));
}
return EXIT_SUCCESS;
}

代码中的if语句:

if (i = limit)

ilimit进行比较.相反,它将limit的值分配给i然后检查此表达式的结果是否不为零。如果是,则输入块,否则将被跳过。

=是赋值运算符。使用相等运算符==比较两个操作数。

if (i == limit)

相关内容

  • 没有找到相关文章

最新更新