69,366
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
void main(){
void *p;
//分配一个数组,含有5个元素
int *array=malloc(5*sizeof(int));
int i;
printf("Input!\n");
//输入5个数字
for(i=0;i<5;i++){
scanf("%d",array+i);
}
printf("\n");
//输出5个数字
for(i=0;i<5;i++){
printf("%d\n",*(array+i));
}
//释放这5个空间,这句话出错!
for(i=0;i<5;i++){
p=(void*)(array+i);
free(p);
}
printf("FreeEnd!\n");
}
#include<stdio.h>
#include<stdlib.h>
void main()
{
//void *p;
//分配一个数组,含有5个元素
int *array=(int *)malloc(5*sizeof(int));
int i;
printf("Input!\n");
//输入5个数字
for(i=0;i<5;i++)
{
scanf("%d",array+i);
}
printf("\n");
//输出5个数字
for(i=0;i<5;i++)
{
printf("%d\n",*(array+i));
}
//释放这5个空间,这句话出错!
/*for(i=0;i<5;i++)
{
p=(void*)(array+i);
free(p);
}*/
free(array);
printf("FreeEnd!\n");
}
#include<stdio.h>
#include<stdlib.h>
void main(){
char **array=(char**)malloc(5*sizeof(char*));
int i;
for(i=0;i<5;i++){
*(array+i)=(char *)malloc(4 * sizeof(char));//这里需要分配字符串长度,你那里只分配了一个字符的长度
}
printf("Input!\n");
for(i=0;i<5;i++){
scanf("%s",*(array+i));
}
printf("\n");
for(i=0;i<5;i++){
printf("%s\n",*(array+i));
}
for(i=0;i<5;i++){
free((void*)array[i]);
}
free((void*)array);
printf("FreeEnd!\n");
}
#include<stdio.h>
#include<stdlib.h>
void main(){
//分配字符串数组
char **array=(char**)malloc(5*sizeof(char*));
int i;
//为每个字符串分配空间
for(i=0;i<5;i++){
*(array+i)=malloc(sizeof(char));
}
printf("Input!\n");
//输入5个字符串
for(i=0;i<5;i++){
scanf("%s",*(array+i));
}
printf("\n");
//输出5个字符串
for(i=0;i<5;i++){
printf("%s\n",*(array+i));
}
//依然出错
for(i=0;i<5;i++){
free((void*)array[i]);
}
//直接释放字符串数组
free((void*)array);
printf("FreeEnd!\n");
}
#include<stdio.h>
#include<stdlib.h>
void main(){
//分配字符串数组
char **array=(char**)malloc(5*sizeof(char*));
int i;
//为每个字符串分配空间
for(i=0;i<5;i++){
*(array+i)=malloc(sizeof(char));
}
printf("Input!\n");
//输入5个字符串
for(i=0;i<5;i++){
scanf("%s",*(array+i));
}
printf("\n");
//输出5个字符串
for(i=0;i<5;i++){
printf("%s\n",*(array+i));
}
//直接释放字符串数组
free(array);
printf("FreeEnd!\n");
}
#include<stdio.h>
#include<stdlib.h>
void main(){
int *array=(int*)malloc(5*sizeof(int));//这里需要转换为int指针
int i;
printf("Input!\n");
for(i=0;i<5;i++){
scanf("%d",array+i);
}
printf("\n");
for(i=0;i<5;i++){
printf("%d\n",*(array+i));
}
free(array);//直接这样释放
printf("FreeEnd!\n");
}
楼主可以参考下[code=c]
//分配一个数组,含有5个元素
int *array=(int *)malloc(5*sizeof(int));
int i;
printf("Input!\n");
//输入5个数字
for(i=0;i<5;i++){
scanf("%d",array+i);
}
printf("\n");
//输出5个数字
for(i=0;i<5;i++){
printf("%d\n",*(array+i));
}
//释放
free(array);
[/code]