#define z 5
void main()
{
char *s[z];
int i;
for(i=0;i<z;i++)
scanf("%s",s[i]);
大致这样,已经开辟空间了啊,但不可以赋值
是不是指针数组只能赋初值呢?
你这样没有开辟空间 , 这样才是开辟了空间 , 自己好好体会一下吧
指针数组当然不是只能赋初值
#include
#include
#define z 5
void main()
{
char *s[z];
int i ;
for( i = 0 ; i <5 ; i++ )
{
s[ i ] = ( char * )malloc( sizeof( char ) ) ; //动态开辟 (就像char a[5] ; s[0] = a)
}
for(i=0;i<z;i++)
scanf("%s",s[i]);
}
s[i]本身就已经是指针了,再加&是什么意思呢