首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针数组有关问题

2012-03-09 
指针数组问题#include stdio.hvoidmain(){int*a[3]{0,1,2}int**ptrptraprintf( %d,**(ptr))prin

指针数组问题
#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,

热点排行