松湖轻烟雨 2022-09-30 20:46 采纳率: 71.4%
浏览 26
已结题

ptr = (int*)malloc(num * sizeof(int))这个num*sizeof(int)是什么意思

C语言申请内存的一些问题:ptr = (int*)malloc(num * sizeof(int))这个num*sizeof(int)是什么意思

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int* ptr = NULL;
int num, i;
printf("请输入待录入的整数的个数:");
scanf_s("%d", &num);
ptr = (int)malloc(num * sizeof(int));*
for (i = 0; i < num; i++)
{
printf("请录入第%d个整数", i + 1);
scanf_s("%d\n", &ptr[i]);

}
printf("你录入的整数是:");
for (i = 0; i < num; i++)
{
    printf("%d\n", ptr[i]);
}
putchar('\n');
free(ptr);

return 0;

}
还有为什么我输入第一个数还要再输一个按enter才可以

img

  • 写回答

2条回答 默认 最新

  • ·星辰大海 2022-09-30 21:01
    关注

    num是个数,sizeof(int)是取int型数据的大小,乘起来就是开辟四个int大小的内存。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 修改了问题 9月30日
  • 创建了问题 9月30日