gpt4 book ai didi

c - c语言不分配内存空间访问有问题吗

转载 作者:行者123 更新时间:2023-11-30 20:43:55 25 4
gpt4 key购买 nike

#include<stio.h>main(){  int *p,i;  p = (int*)malloc(sizeof(int));  printf("Enter:");  scanf("%d",p);  for(i=1;i<3;i++)  {   printf("Enter");   scanf("%d",p+i);  }  for(i=0;i<3;i++)  {    printf("No:%d\n",*(p+i));  }  getch();  return 0;}

在这个C程序中,内存是在没有分配的情况下访问的。程序可以工作。在没有分配的情况下访问内存会出现任何问题吗?如果是,那么存储预先不知道大小的整数数据集合的解决方案是什么?

最佳答案

是的,它会导致未定义的行为。问题是在这里工作纯粹是因为运气,并且随时可能崩溃。解决方案是使用 malloc 分配内存。例如,如果您想为 count 个元素分配内存,则可以使用 int* p = (int* )malloc(sizeof(int)*count);。从这里开始,您可以将 p 作为 count 元素的数组进行访问。

关于c - c语言不分配内存空间访问有问题吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3519301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com