#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,i;
int *p = NULL;
scanf(“%d”,&num);
printf(“num = %d\n”,num);
//定义一个动态数组,输入19,就有19个元素
p = (int *)malloc(sizeof(int)*num); //分配内存
printf(“%p\n”,p); //打印地址
if(p = NULL)
{
printf(“内存分配失败\n”);
}
else
{
printf(“内存分配成功\n”);
for (i = 0;i < num;i++)
{
p[i] = i; //按照数组方式访问内存
printf(“d\n”,p[i]);
}
free(p);
}
system(“pause”);
}
调试时总报错
问一下师傅们这是什么原因造成的?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,i;
int *p = NULL;
scanf(“%d”,&num);
printf(“num = %d\n”,num);
//定义一个动态数组,输入19,就有19个元素
p = (int *)malloc(sizeof(int)*num); //分配内存
printf(“%p\n”,p); //打印地址
if(p = NULL)
{
printf(“内存分配失败\n”);
}
else
{
printf(“内存分配成功\n”);
for (i = 0;i < num;i++)
{
p[i] = i; //按照数组方式访问内存
printf(“d\n”,p[i]);
}
free(p);
}
system(“pause”);
}
调试时总报错
问一下师傅们这是什么原因造成的?
解决方案
40
printf(“%p\n”,p); //打印地址
if(p = NULL)
{
printf(“内存分配失败\n”);
}
改成 if(p==NULL)
这个是有警告的。
if(p = NULL)
{
printf(“内存分配失败\n”);
}
改成 if(p==NULL)
这个是有警告的。