#include <stdlib.h>
#include <stdio.h>
int main( )
{
int *p=malloc(100);
for(int i=0; i<10; i++)
p[i]=i*i;
for(int i=0; i<10; i++)
printf("%d\n", p[i]);
free(p);
int *q=malloc(100);
for(int i=0; i<10; i++)
q[i]=i;
for(int i=0; i<10; i++)
printf("%d\n", p[i]);
}
这个程序可以这样写吗?先对指针P动态申请,然后赋值的时候怎么就可以当数组来用呢?还有既然把它当数组为什么释放的时候不一个一个地释放呢?希望大家帮帮忙。
----------------解决方案--------------------------------------------------------
还有这个程序有几个编译错误可是我不知道怎么改
----------------解决方案--------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
int main( )
{
int *p=(int*)malloc(100);
for(int i=0; i<100/sizeof(int); i++)
p[i]=i*i;
for(i=0; i<100/sizeof(int); i++)
printf("%d\n", p[i]);
free(p);
int *q=(int*)malloc(100);
for(i=0; i<100/sizeof(int); i++)
q[i]=i;
for(i=0; i<100/sizeof(int); i++)
printf("%d\n", p[i]);
return 0;
}
这样试试
----------------解决方案--------------------------------------------------------
定义时[]和使用时[]是有差别的
定义时[]就是定义数组的
使用时[]是地址解析符
这个要理解
----------------解决方案--------------------------------------------------------