用c语言实现二级指针的循环输入 直到输入数据为-9999时停止
时间: 2024-05-12 18:19:52 浏览: 9
以下是使用C语言实现二级指针的循环输入直到输入数据为-9999时停止的示例代码:
```c
#include <stdio.h>
int main() {
int **pptr, *ptr, num;
ptr = (int *)malloc(sizeof(int));
*ptr = 0;
pptr = &ptr;
while(1) {
printf("请输入一个整数:");
scanf("%d", &num);
if(num == -9999) {
break;
}
*ptr = num;
ptr = (int *)malloc(sizeof(int));
*ptr = 0;
*pptr = ptr;
pptr = &ptr;
}
ptr = *pptr;
free(ptr);
*pptr = NULL;
printf("输入结束!\n");
return 0;
}
```
解释:
1. 首先定义了一个二级指针 `pptr` 和一个一级指针 `ptr`,并使用 `malloc()` 函数动态分配了一块内存,并将 `ptr` 指向该内存地址。
2. 在循环中,使用 `scanf()` 函数读取用户输入的整数,如果输入的整数为 -9999,则跳出循环,否则将输入的整数写入 `ptr` 所指向的内存地址,并通过 `malloc()` 函数再次动态分配一块内存,并将 `ptr` 指向该内存地址。
3. 将 `ptr` 所指向的内存地址赋值给 `pptr`,以便在下一次循环中可以继续使用该内存地址。
4. 当跳出循环后,需要释放最后一块分配的内存,并将 `pptr` 指向的内存地址赋值为 `NULL`,以防止出现野指针。
5. 最后输出一个提示信息,表示输入结束。
注意事项:
1. 在使用 `malloc()` 函数分配内存时,需要在程序结束时手动释放内存,否则会出现内存泄漏的问题。
2. 在使用指针时,需要注意指针之间的赋值关系,否则会导致程序出现异常行为。
3. 在使用 `scanf()` 函数读取用户输入时,需要注意错误处理,否则会导致程序出现异常行为。