Siv*_*ran -3 c memory-management
#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元素.
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |