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;
}

截图结果:

分配了内存后,打印输出结果

 

 完

 

 

 

posted @ 2022-04-10 15:09  辰梦starDream  阅读(3)  评论(0编辑  收藏  举报  来源