|
发表于 2019-9-15 00:29:47
|
显示全部楼层
本帖最后由 jackz007 于 2019-9-15 00:42 编辑
这一句有错误:
因为 p 已经是指针了,所以,不应该再用取址操作符了。
应该改成这样:
给你一个不会出错的例子:
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- int i = 1 , j , k , * p ;
- printf("\n") ;
- printf("\t\t你准备输入几个整数:") ;
- scanf("%d" , & i) ;
- p = (int *) malloc(i * sizeof(int)) ;
- printf("\n") ;
- printf("\t\t下面分别键入这 %d 个整数. . .\n" , i) ;
- for(k = 0 ; k < i ; k ++) {
- printf("\t\t") ;
- scanf("%d" , & p[k]) ;
- }
- printf("\n") ;
- printf("\t\t以下是这 %d 个整数\n" , i) ;
- for(k = 0 ; k < i ; k ++) printf("\t\t%d\n" , p[k]) ;
- free(p) ;
- }
复制代码
如果只需要输入 1 个数据:
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- int * p ;
- p = (int *) malloc(sizeof(int)) ;
- printf("\n") ;
- printf("\t\t输入 & p 的值:") ;
- scanf("%d" , p) ;
- printf("\n") ;
- printf("\t\t* p 的值 = %d\n" , * p) ;
- free(p) ;
- }
复制代码 |
|