本帖最后由 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) ;
}
|