|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <sys_head.h>//自定义头文件已包含下列代码中使用的函数所需头文件
int *ptr;
void END(void)
{
if (NULL != ptr)
{
printf("\n");
for (int i = 0; i < 10; i++)
{
printf("%d\t", ptr[i]);
}
free(ptr);
printf("\n内存释放成功\n");
}
}
int main(int argc, char *argv[])
{
ptr = (int *)malloc(sizeof(int) * 10);
if (NULL == ptr)
{
ERRLOG("内存分配失败");
return EOF;
}
memset(ptr, 0, sizeof(int) * 10);
for (int i = 0; i < 10; i++)
{
printf("请输入一个整数:");
scanf("%d", &ptr[i]);
}
for (int i = 0; i < 10; i++)
{
printf("%d\t", ptr[i]);
}
int pid = fork();
if (pid == 0)
{
atexit(END); // 注册退出函数
}
else if (pid > 0)
{
printf("\n我是父进程我的子进程的pid是%d\n", pid);
}
return 0;
屏幕输出内容如下:
请输入一个整数:1
请输入一个整数:2
请输入一个整数:3
请输入一个整数:4
请输入一个整数:5
请输入一个整数:6
请输入一个整数:7
请输入一个整数:8
请输入一个整数:9
请输入一个整数:10
1 2 3 4 5 6 7 8 9 10
我是父进程我的子进程的pid是14838
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
内存释放成功
问为什么执行子进程打印了2变数组的内容?
|
|