C语言指针问题
1.未分配内存,直接使用
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[])
{
int *num;//未分配内存
int i;
for (i = 0; i < 10; i++)
{
*(num + i) = i + 1;
}
for (i = 0; i < 10; i++)
{
printf("%d\n",*(num+i));
}
return 0;
}
截图结果:
什么也不会输出,因为没有分配内存
2.解决办法
为num指针分配一定的内存
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[])
{
int *num = (int*)malloc(40);
int i;
for (i = 0; i < 10; i++)
{
*(num + i) = i + 1;
}
for (i = 0; i < 10; i++)
{
printf("%d\n",*(num+i));
}
free(num);
return 0;
}
截图结果:
分配了内存后,打印输出结果
完