读书人

指针数组有关问题

发布时间: 2012-03-09 21:42:54 作者: rapoo

指针数组问题
#include <stdio.h>
void main()
{
int *a[3]={0,1,2};
int **ptr;
ptr=a;
printf( "%d ",**(ptr));
printf( "\n ");
}
这样为什么会报错呢?而且也只能得到0这个值为什么呢?

[解决办法]
#include <stdio.h>
#include <stdlib.h>

void main()
{

int b[3] = {0,1,2};
int *a=b;
int **ptr = (int **)malloc(100);
*ptr=a;
printf( "%d ",**(ptr));
printf( "\n ");
}

这样为什么会报错呢?而且也只能得到0这个值为什么呢?
----------------------------------------------
报错是因为没有给ptr分配空间造成的。
结果为0这个是自然的,因为你是将a的首地址传给ptr,

读书人网 >C语言

热点推荐