#include <stdio.h>
main()
{ int *p[5];
int *ptr,i;
if((ptr=malloc(100*sizeof(int)))!=NULL)
{p[0]=ptr;
for(i=1;i<5;i++)
p[i]=p[i-1]+7;
for(i=0;i<10;i++)*ptr++=i;
for(i=0;i<5;i++)
printf("%3d",*p[i]);
}
}
[此贴子已经被作者于2007-11-3 13:58:34编辑过]
[此贴子已经被作者于2007-11-3 13:58:34编辑过]
以下是引用yqiong在2007-8-10 23:17:30的发言:
这个程序到底在干嘛呀?请各位高手帮忙解释一下,输出结果为多少?
#include <stdio.h>
main()
{ int *p[5];
int *ptr,i;
if((ptr=malloc(100*sizeof(int)))!=NULL)----------这里改!!这应怎么改?
{p[0]=ptr;
for(i=1;i<5;i++)
p[i]=p[i-1]+7;
for(i=0;i<10;i++)*ptr++=i;------------这里应该是i<100就对了
for(i=0;i<5;i++)
printf("%3d",*p[i]);
}
}
能解释下整个程序的思想吗?
这地方不懂呢!
if((ptr=malloc(100*sizeof(int)))!=NULL)
{p[0]=ptr;
for(i=1;i<5;i++)
p[i]=p[i-1]+7; /* 只是为数组的每个元素分配了7个存储空间吧*/
for(i=0;i<10;i++)*ptr++=i; /*这一步才是给数组赋值吧!*/