c低级问题

来源:百度知道 编辑:UC知道 时间:2024/07/06 22:57:43
定义一个指针数组
char *xiaozi[4];
想用输入的方式 输入的方式进行赋值
应该怎么做``?
谢谢
*xiaozi[4];
没申请空间直接输入会出问题的!! 一输入就内存错误```

#include"stdio.h"
void main()
{
char a[3][100],*xiaozi[3],*p;
int i;
for(i=0;i<3;i++){
xiaozi[i]=a[i];/*注意这*/
scanf("%s",xiaozi[i]);
}
for(i=0;i<3;i++)
printf("%s\n",xiaozi[i]);
}

定义了一个指针数组,这个数组分别存放的是指向一个字符的地址,首先必须申请4个字符空间,每个字符地址分别赋给指针数组,可用xiaozi[0]=&a,这种型式。就是把存放a的地址赋给数组xiaozi的第1个。程序用getchar来循环输入,输入完毕后打印出来,完整程序如下:
#include <iostream>
using namespace std;

main()
{
char *xiaozi[4];
for (int i=0;i<4;i++)
{
xiaozi[i]=new char[1];//申请空间
};

for ( i=0;i<4;i++)
{
*xiaozi[i]=getchar();//取4个字符
};
for (i=0;i<4;i++)
{
cout<<*xiaozi[i]<<endl;//打印
};
}

程序运行,输了:abcd 回车后就可以得到
a
b
c
d
你可以调试一下,有什么问题可以再发短信与我。

镟环getchar赋给每个指针数组下标