输出
null
# include<stdio.h> # include<stdlib.h> void fun( int *a) { a = ( int *) malloc ( sizeof ( int )); } int main() { int *p; fun(p); *p = 6; printf ( "%d" ,*p); return (0); } |
(A) 可能行不通 (B) 作品和印刷品6 答复: (A) 说明: 该程序无效。尝试替换“int*p”带有“int*p=NULL;”它将尝试取消对空指针的引用。 这是因为fun()会复制指针,所以当调用malloc()时,它会将复制的指针设置为内存位置,而不是p。p在调用fun()之前和之后指向随机内存,当您取消引用它时,它会崩溃。 如果要从函数向指针添加内存,则需要传递指针的地址(即双指针)。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END